前提・実現したいこと
はじめまして。
ななめにループする画像スライダーをCSSで組んだのですが、途中で画像が途切れてしまいます。そして、なぜかマウスを少しだけ動かすと画像が表示されます。
画像を正しく表示させるためにご助力いただけると幸いです。
バグ
合計8枚のスライドを入れているのですが、上のように7枚目以降から消滅してしまいます。なぜかマウスをほんの少しだけ動かすと画像が表示されるようになります。
こうしたい
↑のように、画像が途切れることなく流れるようにしたいです。
HTML
<div class="top"> <div class="container"> <div class="slider"> <div class="slider-box"> <div class="loop-box"> <ul class="loop1"> <li><img src="./img/top/slider1.png" /></li> <li><img src="./img/top/slider2.png" /></li> <li><img src="./img/top/slider3.png" /></li> <li><img src="./img/top/slider4.png" /></li> <li><img src="./img/top/slider5.png" /></li> <li><img src="./img/top/slider6.png" /></li> <li><img src="./img/top/slider7.png" /></li> <li><img src="./img/top/slider8.png" /></li> </ul> <ul class="loop2"> <li><img src="./img/top/slider1.png" /></li> <li><img src="./img/top/slider2.png" /></li> <li><img src="./img/top/slider3.png" /></li> <li><img src="./img/top/slider4.png" /></li> <li><img src="./img/top/slider5.png" /></li> <li><img src="./img/top/slider6.png" /></li> <li><img src="./img/top/slider7.png" /></li> <li><img src="./img/top/slider8.png" /></li> </ul> </div> </div> </div> </div> </div>
CSS
.top { position: relative; width: 100%; height: 700px; overflow:hidden; background: #CCCCCC; } .top img{ display:block; image-rendering:auto; } .container{ position:relative; display:block; } .slider-box p, .slider-box div, .loop-box ul, .loop-box li { box-sizing: border-box; margin: 0 !important; padding: 0 !important; } .container .slider{ position: relative; z-index:10; } .container .slider-box{ position:absolute; top:-200px; left:-10%; box-sizing: border-box; overflow: hidden; width: 200%; transform:rotate(-13deg); } .container .loop-box{ position: relative; width: 100%; overflow: hidden; height: 620px; box-sizing:border-box; } .container .loop-box ul { position: absolute; left: 0; top: 0; display: flex; justify-content: flex-start; width: calc(1500px * 8); animation: 60s linear infinite; height: 700px; } .container .loop-box li { display: flex; align-items: flex-end; justify-content: center; color: #fff; width: calc(100% / 8); height: 700px; } .container .loop-box img { width: 100%; height: auto; } .loop-box ul.loop1 { animation-name: loop1; } .loop-box ul.loop2 { animation-name: loop2; } @keyframes loop1 { 0% {transform: translateX(0); } 49.99999% {transform: translateX(-100%); } 50% {transform: translateX(100%);} } @keyframes loop2 { 0% {transform: translateX(100%); } 100%{transform: translateX(-100%); } }
補足です。
ななめに移動するスライダーで、6枚目までは正常に表示されます。
どのブラウザーでも発生するので、CSSかHTMLの記述におかしなところがあるのかなと思っています。