【HTML/CSS】コピペOK!実用的なスライドショー3選

Contents

HTML/CSSのみでスライドショーを作る方法

「webサイトのヘッダー部分にスライドショーを入れたい」「スライドショーを使ってなにか作りたい」と思っている方など、スライドショーでこういう制作がしたい!と考えている人は多いと思います。

それと同時に、「スライドショーは難しそう」「JQueryやJavaScriptの使い方がわからない」という方もいると思うので、この記事では、HTML・CSSのみでスライドショーをまとめました。

スライドショーの種類は色々ありますが、その中からよりWeb制作に実用的なものをまとめたので、ぜひ自分なりにカスタマイズして使って見てください。

基本的なスライドショー

実用的で基本的なスライドショーとして、フェードイン・フェードアウトするスライドショーになります。

ファースビューの背景などに使えるスライドショーになります。

See the Pen slide1 by 古澤 良汰 (@ryotarofu) on CodePen.

HTML

 <div class="slide"> <img class="item1" src="/images/item1.jpg" alt=""> <img class="item2" src="/images/item2.jpg" alt=""> <img class="item3" src="/images/item3.jpg" alt=""> <img class="item4" src="/images/item4.jpg" alt=""> </div> 

CSS

.slide { position: relative; width: 100%; height: 400px; overflow: hidden; } @keyframes slideshow{ 0%{ opacity: 0; } 10%{ opacity: 1; } 28%{ opacity: 1 } 38%{ opacity: 0; } 100%{ opacity: 0; } } .slide img { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 100%; height: auto; opacity: 0; animation :slideshow 20s linear infinite; } .slide img:nth-child(2){ animation-delay: 8s; } .slide img:last-child{ animation-delay: 16s; }

このスライドショーは3枚での設定になっているので、写真を4枚以上使用すると崩れてしまいます。

4枚以上スのライドショーをCSSで実装する場合には、キーフレームを使ったCSSアニメーションの知識が必要になってきます。

アクセントのあるスライドショー

上記の基本的なスライドショーに、範囲内での拡大・縮小を加えたスライドショー

overflowを使用することで、枠内からはみ出さずに画像が拡大・縮小します。

ファースビューの背景にアクセントを付けたいときや、フードメニューなど様々な場面で活躍する便利なスライドショーになっています。

See the Pen スライド2 by 古澤 良汰 (@ryotarofu) on CodePen.

HTML

 <div class="slide"> <img class="item1" src="/images/item1.jpg" alt=""> <img class="item2" src="/images/item2.jpg" alt=""> <img class="item3" src="/images/item3.jpg" alt=""> <img class="item4" src="/images/item4.jpg" alt=""> </div> 

CSS

.slide{ position: relative; width: 500px; height: 300px; overflow: hidden; margin: 0 auto;
}
.item1, .item2, .item3 ,.item4{ position: absolute; top:0; left:0; width: 100%; height: 100%; background-size: cover; background-repeat: no-repeat;
}
.item1{ animation: slide1 20s infinite;
}
.item2{ animation: slide2 20s infinite;
}
.item3{ animation: slide3 20s infinite;
}
.item4{ animation: slide4 20s infinite;
}
@keyframes slide1 { 0% {opacity: 1; transform: scale(1.0);} 20% {opacity: 1;} 30% {opacity: 1;} 40% {opacity: 0; transform: scale(1.1);} 90% {opacity: 0} 100% {opacity: 1; transform: scale(1.0);}
}
@keyframes slide2 { 0% {opacity: 0;} 30% {opacity: 0; transform: scale(1.1);} 40% {opacity: 1;} 50% {opacity: 1;} 60% {opacity: 0; transform: scale(1.0);} 100% {opacity: 0;}
}
@keyframes slide3 { 0% {opacity: 0;} 50% {opacity: 0; transform: scale(1.0);} 60% {opacity: 1;} 70% {opacity: 1;} 90% {opacity: 0; transform: scale(1.1);} 100% {opacity: 0;}
}
@keyframes slide4 { 0% {opacity: 0;} 70% {opacity: 0; transform: scale(1.1);} 80% {opacity: 1;} 90% {opacity: 1;} 100% {opacity: 0; transform: scale(1.0);}
}

ホバーができるスライドショー

写真をホーバーすると、スライドが止まり、写真が浮き上がるスライドショー。

インスタグラムの投稿や、写真にリンクを付けたいとこなどに有効になってきます。

See the Pen スライド3 by 古澤 良汰 (@ryotarofu) on CodePen.

HTML

 <div class="wrap slider" ontouchstart=""> <div class="slide"> <img class="item1 item" src="/images/item.jpg" alt=""> <img class="item2 item" src="/images/item.jpg" alt=""> <img class="item3 item" src="/images/item.jpg" alt=""> <img class="item4 item" src="/images/item.jpg" alt=""> </div> <div class="slide"> <img class="item1 item" src="/images/item.jpg" alt=""> <img class="item2 item" src="/images/item.jpg" alt=""> <img class="item3 item" src="/images/item.jpg" alt=""> <img class="item4 item" src="/images/item.jpg" alt=""> </div> <div class="slide"> <img class="item1 item" src="/images/item.jpg" alt=""> <img class="item2 item" src="/images/item.jpg" alt=""> <img class="item3 item" src="/images/item.jpg" alt=""> <img class="item4 item" src="/images/item.jpg" alt=""> </div> </div>

CSS

 img { width: 200px; height: 200px; } .wrap { overflow: hidden; display: flex; align-items: center; height: 340px; margin-bottom: 100px; } .slide { display: flex; -webkit-animation: slide 20s infinite linear 1s both; animation: slide 20s infinite linear 1s both; } @-webkit-keyframes slide { from { transform: translateX(0); } to { transform: translateX(-100%); } } @keyframes slide { from { transform: translateX(0); } to { transform: translateX(-100%); } } .slider:hover .slide { -webkit-animation-play-state: paused; animation-play-state: paused; } .item { transition: all 0.2s; margin-right: 20px; } .item:hover { transform: translateY(-20px); border-radius: 10px; box-shadow: 0 3px 10px 0 #333; opacity: 1; cursor: pointer; }

まとめ

今回はWeb制作で実用的なスライドショーについてまとめました。

上記でまとめたスライドショー以外にも、多種多様なスライドショーがまだまだあります。

自分の制作物に合うスライドショーを見つけて、制作の幅を増やしましょう。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA