前提・実現したいこと
メインビジュアル部分で、以下のような動きをつけたいです。
『ロゴが先にフェードイン表示→ロゴの後ろの背景も遅れて数秒後にフェードイン表示』
みたいな感じにしたいです。
恐らくtimeoutなどを使うかと思いますが、色々と試してたりして何度やってもうまく行きません。。。
どうかアドバイスお願いいたします。
html
<section class="mainvisual"> <div class= "mainvisual-inner"> <div class="mainvisual-logo"> <img src="img/logo.png"> </div><!--mainvisual-logo--> </div><!--inner--> </section><!--mainvisual-->
css
.mainvisual { background-color: black; } .mainvisual-inner { background-image: url("../img/mainvisual.png"); background-repeat: no-repeat; width: 100%; background-size: cover; margin: 0 auto; background-position: fixed; /* 背景の位置指定 */ position: relative; } .mainvisual-inner:before {/*薄暗いグラデーションカバー*/ background-color: rgba(0, 0, 0, 0.5); position: absolute; top: 0; right: 0; bottom: 0; left: 0; content: ' '; } .mainvisual-logo { height: 100%; position: relative; } .mainvisual-logo img { width: 270px; height: 360px; position: absolute; top: 0; bottom: 0; right: 0; left: 0; margin: auto; }
試したこと
以下のjqueryでは、ロゴと背景画像が同時にフェードインされます。
これを、ロゴが先にフェードイン→ロゴを表示したまま後ろの背景も遅れてフェードイン
みたいな感じにしたいです。
$('.mainvisual-inner').append('<div id="curtain">'); // 追加したdivを塗りつぶしてから透明化アニメーション $('#curtain').css({ position: 'absolute', left: 0, top: 0, width: '100%', height: '100%', backgroundColor: '#fff', opacity: 100 }).animate({ opacity: 0 }, 3000, function () { // アニメーション終了後に自身を消す $(this).remove(); }); });
どうかアドバイスお願いいたします!
回答1件
あなたの回答
tips
プレビュー