Result
数年前に見かけた懐かしい感じの3Dなカルーセルです。
CSSだけで出来る時代になりましたね。
css
#slideshow {/*全体*/ margin: 0 auto; padding-top: 50px; height: 600px; width: 100%; background-color: #ddd; box-sizing: border-box; } .entire-content {/*カルーセルの見栄え。perspectiveで奥行きを設定する*/ margin: auto; width: 190px; perspective: 1000px; position: relative; padding-top: 80px; } .content-carrousel {/*各画像を包括、アニメーションを設定*/ width: 100%; position: absolute; float: right; animation: rotar 15s infinite linear; transform-style: preserve-3d; } .content-carrousel:hover {/*ホバーしたらアニメーションを停止してポインター表示*/ animation-play-state: paused; cursor: pointer; } .content-carrousel figure {/*各画像設定*/ width: 100%; height: 120px; border: 1px solid #3b444b; overflow: hidden; position: absolute; } /*個々の画像設定*/ .content-carrousel figure:nth-child(1) { transform: rotateY(0deg) translateZ(300px); } .content-carrousel figure:nth-child(2) { transform: rotateY(40deg) translateZ(300px); } .content-carrousel figure:nth-child(3) { transform: rotateY(80deg) translateZ(300px); } .content-carrousel figure:nth-child(4) { transform: rotateY(120deg) translateZ(300px); } .content-carrousel figure:nth-child(5) { transform: rotateY(160deg) translateZ(300px); } .content-carrousel figure:nth-child(6) { transform: rotateY(200deg) translateZ(300px); } .content-carrousel figure:nth-child(7) { transform: rotateY(240deg) translateZ(300px); } .content-carrousel figure:nth-child(8) { transform: rotateY(280deg) translateZ(300px); } .content-carrousel figure:nth-child(9) { transform: rotateY(320deg) translateZ(300px); } .content-carrousel figure:nth-child(10) { transform: rotateY(360deg) translateZ(300px); } .shadow { position: absolute; box-shadow: 0px 0px 20px 0px #000; border-radius: 1px; } .content-carrousel img { image-rendering: auto; transition: all 300ms; width: 100%; height: 100%; } .content-carrousel img:hover {/*画像ホバーでズーム*/ transform: scale(1.2); transition: all 300ms; } @keyframes rotar {/*カルーセルのアニメーション*/ from { transform: rotateY(0deg); } to { transform: rotateY(360deg); } }
html
<section id="slideshow"> <div class="entire-content"> <div class="content-carrousel"> <figure class="shadow"><img src="https://picsum.photos/200/300"/></figure> <figure class="shadow"><img src="https://picsum.photos/201/300"/></figure> <figure class="shadow"><img src="https://picsum.photos/202/300"/></figure> <figure class="shadow"><img src="https://picsum.photos/203/300"/></figure> <figure class="shadow"><img src="https://picsum.photos/204/300"/></figure> <figure class="shadow"><img src="https://picsum.photos/205/300"/></figure> <figure class="shadow"><img src="https://picsum.photos/206/300"/></figure> <figure class="shadow"><img src="https://picsum.photos/207/300"/></figure> <figure class="shadow"><img src="https://picsum.photos/208/300"/></figure> </div> </div> </section>