jquery を使用して、div セット内に残っている画像をスライドさせてオーバーフローを非表示にし、最初の画像を削除して最後に追加することで、リスト内の画像の数が常に同じになり、毎回左にスライドし続ける関数が起動します:
function xxx(){
var first = $('.ximg:first');
$('.ximg').animate({ left: '-=200'}, 2000, function(){ $('.ximg').css({left: '0'}); first.insertAfter($('.ximg:last'));});
}
setInterval(function(){ xxx () }, 8000);
<div style="position:relative; overflow:hidden; width: 400px; height: 150px;">
<div class="ximg" style="position: relative; width: 200px; min-height:150px; background:red"></div>
<div class="ximg" style="position: relative; width: 200px; min-height:150px; background:orange"></div>
<div class="ximg" style="position: relative; width: 200px; min-height:150px; background:green"></div>
<div class="ximg" style="position: relative; width: 200px; min-height:150px; background:yelow"></div>
</div>
しかし、コンテナーには 1 つの画像しかありません。2 番目の画像は、関数が起動したときにのみ追加されます。この種のことを行うために既製のプラグインがあることは知っていますが、シンプルにしたいので、jquery に比較的慣れていないにもかかわらず、自分で作成してみることを好みます。
コンテナーの幅は 400 で、各 div の幅は 200 であるため、最初と 3 番目の div の % が表示されるアニメーション中でも、常に 2 つの div が表示されます。