ページを開いたときに数秒のオープニングを入れるスクリプトを紹介します。
今回はロゴを簡単にアニメーションさせるものおですが、応用すれば色々な演出が可能です。
ファイル構成は
index.html⇒オープニングを挿入するHTML
/js/start.js⇒開始時の操作
/css/style.css⇒スタイル
/images/logo.png⇒表示するロゴ
となります。
HTML
まずはオーバーレイさせるブロックからです。
どこでも問題ないですがbodyの最初や最後に入れましょう。
またjavascriptファイルを読み込む記述もします。(jqueryを使用していますので読み込んでいな場合は読み込んでください。)
index.html
<div class="start"> <p class="srtclass_block"> <img src="./images/logo.png" alt="logo"> </p> </div> <!-- jqueryを読み込んでいない場合は読み込む <script src="//ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> --> <script src="./js/start.js"></script>
CSS
CSSスタイルは開始時に画面いっぱいにレイヤーを出してロゴを中央に寄せます。
ロゴには縦のスケール指定でアニメーションをつけます。
style.css
.start {
background: #FFF;
position: fixed;
top: 0;
left: 0;
height: 100%;
width: 100%;
z-index: 9000;
}
.srtclass_block {
position: fixed;
z-index: 9001;
display: block;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
width: 100%;
height:auto;
}
.srtclass_block img{
width:100%;
height:auto;
animation-name:strfixed;
animation-timing-function:ease-out;
animation-fill-mode:forwards;
animation-duration: 2s;
}
@keyframes strfixed {
0% {
opacity:0;
transform: scaleY(0);
}
100% {
opacity:1;
transform: scaleY(1);
}
}
javascript
javascriptはページ開始時に前面にレイヤーをスクリーンに報じしたものを指定時間後に消す作業を行います。
また、レイヤーを出している間にスクロールができないようにロックをかけます。
$(function() { //スクロールを停止
scrollpos = $(window).scrollTop();//現在表示位置取得
$('body').addClass('scroll-fixed').css({'top': -scrollpos});
setTimeout(function(){
$('.start').fadeOut(500);
setTimeout(function(){
$('.start').addClass('srtclass_none');
$('body').removeClass('scroll-fixed').css({'top': 0});
window.scrollTo( 0, scrollpos ) ;
},500);
},2500);
//2.5秒後にロゴ含め真っ白背景をフェードアウト
});簡単ではありますがページを開いたときのつかみに使えると思います。
SVGでアニメーションを作成したりすれば動画のオープニングのようなことも可能です。



コメント