CSSバックグラウンドマップロード完了後の遷移アニメーション
1660 ワード
背景図に直接アニメーション効果を設定すると、ロードが遅すぎて表示が悪くなり、JavaScriptで画像のロード状態を取得できます.次に、背景画像の透明度グラデーションの効果を実現します.
まず、背景アニメーションを追加する要素スタイルを設定します.は、 を回避することができる.は、 を設定する.
アニメーションを定義しますアニメーションの効果は透明度が0から1 までです.
次にjsによりピクチャのロード状況を取得するまず、ピクチャオブジェクト を作成する.は、 を設定.ピクチャオブジェクトに を実現する.は、背景画像を設定する要素 を取得する.は、 を設定する.
以上の設定で背景画像の移行効果を実現できます!
完全なコード:
https://github.com/saynot/y-n-o/blob/master/css-javascript/background-loaded-animation.html
本文は終わりました.読んでくれてありがとう.
まず、背景アニメーションを追加する要素スタイルを設定します.
main#background {
width: 100%;
height: 100%;
opacity: 0;
background-size: cover;
animation-delay: 0s;
animation-duration: 1s;
animation-fill-mode: forwards;
animation-timing-function: ease;
}
opacity: 0;
により背景ピクチャのロードが完了するまでの要素の状態を非表示にすることで、ロードプロセス時のピクチャカートンanimation-fill-mode: forwards;
によって、アニメーションの完了後に要素が滞在するスタイル、すなわち透明度が1であり、要素の状態が可視であるアニメーションを定義します
@keyframes fadein {
0% { opacity: 0; }
100% { opacity: 1; }
}
次にjsによりピクチャのロード状況を取得する
var background = new Image();
background.src = 'https://static.pexels.com/photos/57772/pexels-photo-57772.jpeg';
background.onload = function () {
console.log('Background load complete!');
var loadbackground = document.getElementById('background');
loadbackground.style.backgroundImage = 'url(' + background.src + ')';
loadbackground.style.animationName = 'fadein';
}
src
の属性によりピクチャのリンクアドレスonload
コールバック関数を追加し、ピクチャのロードが完了するとこの関数が呼び出されるので、この関数では要素の遷移アニメーションstyle
の属性により、その要素の背景画像およびアニメーション名以上の設定で背景画像の移行効果を実現できます!
完全なコード:
https://github.com/saynot/y-n-o/blob/master/css-javascript/background-loaded-animation.html
本文は終わりました.読んでくれてありがとう.