<!-- カルーセルの外枠 -->
<div class="carousel">
<!-- 1枚目のスライド -->
<div class="slide">
<p>1枚目</p>
<img src="https://dummyimage.com/320x120/ff0000/ffffff&text=1">
</div>
<!-- 2枚目のスライド -->
<div class="slide">
<p>2枚目</p>
<img src="https://dummyimage.com/320x120/00ff00/ffffff&text=2">
</div>
<!-- 3枚目のスライド -->
<div class="slide">
<p>3枚目</p>
<img src="https://dummyimage.com/320x120/0000ff/ffffff&text=3">
</div>
<!-- 4枚目のスライド -->
<div class="slide">
<p>4枚目</p>
<img src="https://dummyimage.com/320x120/ff00ff/ffffff&text=4">
</div>
<!-- 1枚目のスライドと同じ内容 -->
<div class="slide">
<p>1枚目</p>
<img src="https://dummyimage.com/320x120/ff0000/ffffff&text=1">
</div>
</div>
/* カルーセルの外枠 */
.carousel {
width: 320px;
height: 240px;
display: flex; /* 子要素を横に並べる */
overflow: hidden; /* はみ出た部分は表示しない */
margin: 0 auto; /* 水平方向中央寄せ */
}
/* カルーセル内の画像 */
.carousel img {
margin: 0;
padding: 0;
display: block; /* imgタグの改行のすき間を消すため */
}
/* スクロールアニメーションのキーフレーム */
@keyframes scroll {
/* 初期位置は1個目の画像が左端 */
0% { margin-left: 0; }
/* 1個分左の位置に進めて2個目の画像を左端にする */
20% { margin-left: -100%; }
/* 少しの間上と同じ位置 */
25% { margin-left: -100%; }
/* 2個分左の位置に進めて3個目の画像を左端にする */
45% { margin-left: -200%; }
/* 少しの間上と同じ位置 */
50% { margin-left: -200%; }
/* 以降は上と同様に繰り返し */
70% { margin-left: -300%; }
75% { margin-left: -300%; }
95% { margin-left: -400%; }
100% { margin-left: -400%; }
}
/* カルーセルの子要素にスクロールアニメーションを設定 */
.carousel > :first-child {
animation-name: scroll; /* キーフレーム名 */
animation-duration: 20s; /* 再生時間全体は20秒 */
animation-delay: 0s; /* 読込直後から遅延無しで開始 */
animation-iteration-count: infinite; /* 無限に繰り返す */
}
/* スライド内の文字の位置 */
.slide {
text-align: center;
}
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.