background-imageで指定した画像にアニメーションをつける

今回は、CSSの疑似要素でbackground-imageプロパティを使用して表示した画像に、ちょっとした動きをつける方法を覚え書きも兼ねて紹介します。

DEMO

背景がゆっくり動きます

背景が止まっているときは、ページを再読み込みしてください。

HTML
  <div class="wrapper">
      <div class="text">
        <p>背景がゆっくり動きます</p>
      </div>
  </div>
CSS
.wrapper {
  position: relative;
  width: 100%;
  height: 550px;
  overflow: hidden;
}

.wrapper::before {
   content: '';
   display: block;
   width: 100%;
   height: 100%;
   background-image: url(画像URL);
   background-size: cover;
   background-position: center;
   background-repeat: no-repeat;
   -webkit-animation: zoom 10s 1;
   animation: zoom 10s 1;
   animation-fill-mode: forwards;
}

@keyframes zoom {
   0% {
      transform: scale(1);
   }
   100% {
      transform: scale(1.5);
   }
}

.text{
  /*wrapperの中身を上下中央揃え*/
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  margin: auto;
  width: 400px;
  height: 50px;
  background-color: #fff;
  text-align: center;
}

.wrapperの中身に文字などの要素を配置するときは、疑似要素で背景を指定することで、背景画像だけが動くデザインがより簡単に再現できます。中身要素には、position: absolute;を指定して制御するとうまく収まります。

今回は画像がゆっくり拡大していくモーションをつけてみました。モーションに関しては、cssのanimationを使用して実装。animationにzoomという任意の名前をつけ、画像が10秒かけて1.5倍に拡大するようにしています。

WEBサイトのヒーローイメージで使用する写真が少ない、画面がすこしさみしいときに、ちょっとした動きをつける小技でした。

--- Related Posts

  1. 大阪旅行に行きました

  2. 夏に聴きたいラジオ番組

  3. 父にウイスキーを贈るようになりました