CSS だけで作るスライドショー

ホームページにスライドショーを表示するときに JavaScript を使うことが多いのですが、JavaScript を使わずに CSS だけでスライドショーを表示することができます。

このスライドショーは CSS だけで作ったものです。




このスライドショーは画像を3枚使用するパターンで、HTML はこのようになっています。

<div class="slide-show">
<img src="1.jpg" /> <!-- スペーサー画像のURL -->
<img src="1.jpg" /> <!-- 1枚目の画像のURL -->
<img src="2.jpg" /> <!-- 2枚目の画像のURL -->
<img src="3.jpg" /> <!-- 3枚目の画像のURL -->
</div>

スペーサー画像はスライドショーの高さを確保するためのもので、1枚目の画像と同じものを指定しています。

3枚の画像は幅640ピクセル以上で縦横比が同じものを使用します。

CSS はこのようになっています。

div.slide-show {
width: 640px; /* スライドショーの幅 */
max-width: 100%; /* スマホで表示が欠けないように */
margin: 10px auto; /* 中央揃え */
position: relative;
}

.slide-show img {
animation: show 12s infinite; /* 12秒のスライドショーを繰り返し */
max-width: 100%;
height: auto;
opacity: 0;
position: absolute; /* 画像を重ねて表示 */
left: 0;
top: 0;
}

@keyframes show {
0% {opacity: 0}
17% {opacity: 1}
33% {opacity: 1}
50% {opacity: 0}
}

.slide-show img:nth-of-type(1) {
position: relative;
}

.slide-show img:nth-of-type(2) {
animation-delay: 0s;
}

.slide-show img:nth-of-type(3) {
animation-delay: 4s;
}

.slide-show img:nth-of-type(4) {
animation-delay: 8s;
}

スライドショーの図解

スライドショーを図解するとこんなかんじです。

CSSによるスライドショーを図解

スライドショー制作事例

下記のサイトは、このようなやり方でトップページのスライドショーを制作した事例です。

https://ishiuchi-parking.com/

Internet Explorer 9 は CSS によるスライドショーを表示することができませんので、上記のサイトでは Internet Explorer 9 で表示したときに最後の画像だけが表示されるようにしてあります。もうサポートが終わったブラウザですし、使っている人もごく一部なので、サイトの動作としては十分に許容範囲だと思います。

投稿者プロフィール

対馬 俊彦
対馬 俊彦魚沼情報サービス・ベクトル公式テクニカルパートナー
【日本全国対応】WordPress のサイト制作、設定、カスタマイズ、トラブルでお悩み、お困りの方、ベクトル公式テクニカルパートナーがお手伝いいたします。

Lightning / VK Blocks / VK Filter Search のサポート、カスタマイズを得意としています。

遠方からのご依頼の場合、打ち合わせ・サポートを Zoom や電子メール・電話などを併用して行わせていただきます。

オンラインレッスン形式でのホームページ制作サポートも行っています。お客様ご自身でホームページを制作・運用する上でうまくいかない部分をサポートいたします。設定やカスタマイズを手伝ってもらいたい、同時に便利な使い方や設定方法、カスタマイズのやり方も知ることができたら...という方にご好評いただいています。

デザイナー様、制作業者様のサイト制作のお手伝いも数多く行っています。難しい部分のコーディング ( PHP / CSS / jQuery ) をやってほしい、いま人手が足りない等、お仕事の依頼をお待ちしています。

ご要望をうかがった上で費用見積り(無料)を提示させていただきますので、お気軽にお問い合わせください。

メールでのお問い合わせはこちら