CSSでスライドショーを作成するには?簡単にカスタマイズできるサンプルコードを紹介
Webサイトにスライドショーを実装する方法はどのようなものがあるでしょうか。
他サイトで見かけることはあっても、自分で作るとなると難しそうで手が出しにくいですよね。
実は、JavaScriptなどのプログラミング言語を使わずに、HTMLとCSSのみで実装することもできます。
今回は、スライドショーを実装したいと考えている方のために、CSSで作成できるスライドショーのサンプルコードを紹介します。
CSSを使ったスライドショー
Webサイトでスライドショーといえば、画像が切り替わるものがよくありますよね。
今回は画像を5つ用意して、1枚ずつ右から左にスライドしていく動きを作成します。
<div class="slide">
<img src="img/sample1.png">
<img src="img/sample2.png">
<img src="img/sample3.png">
<img src="img/sample4.png">
<img src="img/sample5.png">
</div>
CSSでは以下のように記述します。
.slide {
position: relative;
overflow: hidden;
width: 300px;
height: 300px;
margin: auto;
background: #fff;
}
.slide img {
display: block;
position: absolute;
width: inherit;
height: inherit;
left: 100%;
animation: slide-anime 15s ease infinite;
}
.slide img:nth-of-type(1) {animation-delay: 0s;}
.slide img:nth-of-type(2) {animation-delay: 3s;}
.slide img:nth-of-type(3) {animation-delay: 6s;}
.slide img:nth-of-type(4) {animation-delay: 9s;}
.slide img:nth-of-type(5) {animation-delay: 12s;}
@keyframes slide-anime{
0% {left: 100%;}
2% {left: 0;}
18% {left: 0;}
20% {left: -100%;}
100% {left: -100%;}
}
animationプロパティの機能を利用して、1枚ずつスライドさせています。
「animation: slide-anime 15s ease infinite」の値はそれぞれ、アニメーションの名前、再生時間、再生速度の変化、ループ回数を指定しています。
名前はその後の「@keyframes」の部分で使用します。
「ease」は、アニメーションの開始と終了を滑らかにする指定です。
「infinite」を指定することで、アニメーションは無限に繰り返されます。
また、animation-delayは、アニメーションの開始時間を示します。
5枚の画像を時間をずらして動かすことで、1枚ずつスライドしているように表示されます。
再生時間やそれぞれのアニメーション開始時間を変えたりして、動きを試してみてください。
まとめ:スライドショーはCSSアニメーションで実装できる
今回は、CSSを使ってスライドショーを作成する方法を紹介しました。
5枚の画像のアニメーションの開始時間をずらして指定するのが重要でしたね。
オリジナルのスライドショーにも挑戦してみてください。
スライドショーを実装する上で、今回の記事が参考になれば幸いです。