animationプロパティで背景アニメーションを実装する

ウェブデザインに於いて動画を背景に流すことが、ひと昔前から可能になった。重いのが今日に於いてもデメリットだ。

その代替え案になるかもしれない背景画像をアニメーションさせる手法をまとめる。

ひとつ、コンテンツの領域の背景画像をアニメーションさせる方法。

						
<body>
<div class="bg-image-loop">
<!-- コンテンツがここに入る -->
</div>
</body>


/* css */
.bg-image-loop {
	width: 100%;
	height: auto; /* コンテンツに応じて高さを変える */
	position: relative;
	background: url("images/gradation.jpg") repeat-x 0 0;
	background-size: auto 100%;
	animation: bg-slider 100s linear infinite; 
	margin-top: -8px;
	padding: 0;
	box-shadow: 0 0px 50px rgba(47, 63, 135, 0.4);
  	filter: drop-shadow(1px 1px 1px rgba(47, 63, 135, 0.4));
	}
@keyframes bg-slider {
	from { background-position: 0 0; }
  	to { background-position: 100% 0; } 
	}

						
					

ふたつ、<body>タグにグラデーションのアニメーションを実行する。ふたつのアニメーションが交差するとウェブデザインの見応えが断然に増す。

参考:CSS GRADIENT ANIMATOR

						
  body {
    display: block;
    margin-left: auto;
    margin-right: auto;
    position: relative;
    width: 40%;
    font-family: 'Noto Sans JP', sans-serif;
    background-image: linear-gradient(to right, #fff98f 0%, #47cf8d 50%, #fff98f 100%);
    background-size: 200% auto;
    animation: grdAnime 10s infinite linear;
  }

  @-webkit-keyframes grdAnime {
    0% {
      background-position: 0 0;
    }
    100% {
      background-position: 200% 0;
    }
  }

  @keyframes grdAnime {
    0% {
      background-position: 0 0;
    }
    100% {
      background-position: 200% 0;
    }
  }