LoginSignup
0
0

More than 3 years have passed since last update.

ウェブサイト作成用備忘録・2号:background-image の疑似アニメーション制御その2

Last updated at Posted at 2020-08-03

日々の学習のアウトプットの為、自主学習の際に工夫した内容を記録していきます。

今回は background-image プロパティの疑似アニメーション制御について

background-image プロパティは transition プロパティや animation プロパティ等のアニメーション制御には対応していません。

そこで、自分なりに試行錯誤することで、疑似的なアニメーション制御に成功したので、その方法などを記録していきます。

方法2:JavaScript の動的制御で2種類の background-image の opacity を同時に操作することで、疑似的なクロスフェードを実装する。

記述例

HTML

<html>
  <body>
    <div id="background1" class=""></div>
    <div id="background2" class="none"></div>
    <button id="change_screen" class="" type="button">背景変更</button>
  </body>
</html>

CSS

body {
  margin: 0;
}
#background1,
#background2 {
  min-height: 100%;
  min-width: 100%;
  opacity: 1;
  position: fixed;
  transition: all 1s;
  -webkit-transition: all 1s;
}
#background1 {
  background-image: url(背景画像1)
}
#background2 {
  background-image: url(背景画像2)
}
#background1.none,
#background2.none {
  opacity: 0;
}
#change_screen {
  position: relative;
}

javascript

jQuery(document).ready(function(){

  $("#change_screen").click(function(){
    $("#background1").toggleClass("none");
    $("#background2").toggleClass("none");
  });

});

解説

1・背景画像の表示専用の空の div タグを二種類を用意する。

2・予め片方の div タグにはクラス none を設定し、透過処理の初期設定を行う。

3・背景変更ボタンをクリックすると、toggleClass メソッドでそれぞれの div タグの none クラスが切り替わる。

4・それぞれの div タグの透明度が逆転し、transition プロパティによって、1秒間の間にそれぞれの背景がアニメーションすることで、結果的にクロスフェードする。

今回はこれで以上になります。

あくまで自分用の備忘録ですが、他の方の参考になれば幸いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0