- 特徴
- 自動でスライド
- aタグ(画像リンク)あり・なし、どっちでも可
- マウスオーバーでスライドストップ
- 画像を増減するとき再計算し、CSS調整が必要
- 計算が必要なので以下の定義をもとに数式を当てはめてください。
- 1枚表示させたい時間=a秒
- 切り替え時間=b秒
- 画像の数=c枚
- 画像の順=n番目
- なお下記例では以下の数値となっています。
- 1枚表示させたい時間=3秒
- 切り替え時間=0.5秒
- 画像の数=4枚
計算
<div id="memory">
<ul>
<li class="memorycat"><a href="https://sknys.seesaa.net/article/2023-11-06.html"><img class="photonex" src="https://blog.ss-blog.jp/_images/blog/_fc3/sknys/DSC02288X.jpg"></a></li>
<li class="memorycat" style="animation-delay: 3.5s"><a href="https://sknys.seesaa.net/article/2023-12-16.html"><img class="photonex" src="https://blog.ss-blog.jp/_images/blog/_fc3/sknys/DSC05755X.jpg"></a></li>
<li class="memorycat" style="animation-delay: 7s"><a href="https://sknys.seesaa.net/article/2024-04-16.html"><img class="photonex" src="https://blog.ss-blog.jp/_images/blog/_fc3/sknys/DSC04494X.jpg"></a></li>
<li class="memorycat" style="animation-delay: 10.5s"><a href=""><img class="photonex" src="https://blog.ss-blog.jp/_images/blog/_fc3/sknys/DSC04216X.jpg"></a></li>
</ul>
</div>
<ul>
<li class="memorycat"><a href="https://sknys.seesaa.net/article/2023-11-06.html"><img class="photonex" src="https://blog.ss-blog.jp/_images/blog/_fc3/sknys/DSC02288X.jpg"></a></li>
<li class="memorycat" style="animation-delay: 3.5s"><a href="https://sknys.seesaa.net/article/2023-12-16.html"><img class="photonex" src="https://blog.ss-blog.jp/_images/blog/_fc3/sknys/DSC05755X.jpg"></a></li>
<li class="memorycat" style="animation-delay: 7s"><a href="https://sknys.seesaa.net/article/2024-04-16.html"><img class="photonex" src="https://blog.ss-blog.jp/_images/blog/_fc3/sknys/DSC04494X.jpg"></a></li>
<li class="memorycat" style="animation-delay: 10.5s"><a href=""><img class="photonex" src="https://blog.ss-blog.jp/_images/blog/_fc3/sknys/DSC04216X.jpg"></a></li>
</ul>
</div>
<ul>
<li><a href="#1"><img src="1.jpg"></a></li>
<li style="animation-delay: 3.5s"><a href="#2"><img src="2.jpg"></a></li><!--(a+b)×(n-1)-->
<li style="animation-delay: 7s"><a href="#3"><img src="3"></a></li>
<li style="animation-delay: 10.5s"><a href="#4"><img src="4.jpg"></a></li>
</ul>
<li><a href="#1"><img src="1.jpg"></a></li>
<li style="animation-delay: 3.5s"><a href="#2"><img src="2.jpg"></a></li><!--(a+b)×(n-1)-->
<li style="animation-delay: 7s"><a href="#3"><img src="3"></a></li>
<li style="animation-delay: 10.5s"><a href="#4"><img src="4.jpg"></a></li>
</ul>
- animation-delay:◎s(前のスライドが終わるまで待つ)
- ◎=(1枚表示させたい時間 + 切り替え時間)×(画像の順 - 1)
<style>
#memory ul{list-style: none; position: relative;}
#memory li{position: absolute; top: 0; left: 0; width: 100%; z-index: 0;}
.memorycat img{display: block; max-width: 100%; height: auto;}
#memory li{animation: slide 14s infinite;/* (a+b)×c=x */ opacity: 0;}
@keyframes slide {0%{opacity: 0;}
3.5%{opacity: 1;z-index: 1;}/* b÷x×100=y */
25%{opacity: 1;}/* 100÷c=z */
28.5%{opacity: 0;z-index: 0;}/* y+z */}
#memory ul:hover li{animation-play-state:paused;/* マウスを載せると一時停止 */}
#memory li:first-child{position:relative; left:-40px}
.photonex{border: solid 1px #cccccc; background-color: #ffffff; padding: 10px; margin-left: 14px; border-radius: 10px; box-shadow: 5px 5px 10px #808080;/* 画像に白枠と陰影を付ける */ width: 480px; height: 320px;}
</style>
#memory ul{list-style: none; position: relative;}
#memory li{position: absolute; top: 0; left: 0; width: 100%; z-index: 0;}
.memorycat img{display: block; max-width: 100%; height: auto;}
#memory li{animation: slide 14s infinite;/* (a+b)×c=x */ opacity: 0;}
@keyframes slide {0%{opacity: 0;}
3.5%{opacity: 1;z-index: 1;}/* b÷x×100=y */
25%{opacity: 1;}/* 100÷c=z */
28.5%{opacity: 0;z-index: 0;}/* y+z */}
#memory ul:hover li{animation-play-state:paused;/* マウスを載せると一時停止 */}
#memory li:first-child{position:relative; left:-40px}
.photonex{border: solid 1px #cccccc; background-color: #ffffff; padding: 10px; margin-left: 14px; border-radius: 10px; box-shadow: 5px 5px 10px #808080;/* 画像に白枠と陰影を付ける */ width: 480px; height: 320px;}
</style>
<style>
ul{list-style: none; position: relative;}
li{position: absolute; top: 0; left: 0; width: 100%; z-index: 0;}
img{display: block; max-width: 100%; height: auto;}
li{animation: slide 14s infinite;/* (a+b)×c=x */ opacity: 0;}
@keyframes slide{0%{opacity: 0;}
3.5%{opacity: 1;z-index: 1;}/* b÷x×100=y */
25%{opacity: 1;}/* 100÷c=z */
28.5%{opacity: 0;z-index: 0;}/* y+z */}
ul:hover li{animation-play-state:paused;/* マウスを載せると一時停止 */}
li:first-child{position:relative;}
<style>
ul{list-style: none; position: relative;}
li{position: absolute; top: 0; left: 0; width: 100%; z-index: 0;}
img{display: block; max-width: 100%; height: auto;}
li{animation: slide 14s infinite;/* (a+b)×c=x */ opacity: 0;}
@keyframes slide{0%{opacity: 0;}
3.5%{opacity: 1;z-index: 1;}/* b÷x×100=y */
25%{opacity: 1;}/* 100÷c=z */
28.5%{opacity: 0;z-index: 0;}/* y+z */}
ul:hover li{animation-play-state:paused;/* マウスを載せると一時停止 */}
li:first-child{position:relative;}
<style>
- animation:△s(スライド1周の時間)
- △=(1枚表示させたい時間 + 切り替え時間)× 画像の数
- @keyframes 2個目の%は切り替え時間の割合
- 切り替え時間 秒 ÷ △秒 × 100%
- @keyframes 3個目の%は1つ目のスライド終了の割合
- 100% ÷ 画像の数
- @keyframes 4個目の%は上記2つの合計
- (切り替え時間 秒 ÷ △秒 × 100%)+(100% ÷ 画像の数)
- 「CSSだけで自動再生スライドショー」 からの無断引用ですが、PRはしましたよ^^;
- 「にゃんこスライダー」 は引用元のCSS(スタイルシート)を少々アレンジしています
- 〈メモリアル・キャッツ 2〉に伴い、記事の一部を修整しました(2023・12・30)