見出しが一方の側からもう一方の側にスライドする無限ループを作成しました。そして、見出しが最後に達すると、最後にキューに入れられます。
問題は、私の見出しの幅が異なることです。これは、アニメーション速度が異なるスライダーで終わります。多分私は私の設定が間違っていますが、これは私のコードです:
HTML:
<header>
<div id="spotlight">
<span class="active">Foo</span>
<span>Baaaar</span>
<span>Baaz</span>
<span>baz</span>
<span>qux</span>
<span>quux</span>
<span>corge</span>
<span>grault</span>
<span>garply</span>
<span>waldo</span>
</div>
</header>
CSS:
body {
background: #000;
}
header {
border-bottom: 8px solid white;
height: 300px;
margin-bottom: 4%;
overflow: hidden;
position: relative;
}
header #spotlight {
left: 0;
position: absolute;
width: 1100%;
}
header #spotlight span {
color: white;
display: block;
float: left;
font-size: 6em;
font-weight: 900;
margin-top: 1%;
text-transform: uppercase;
}
header #spotlight span {
margin-left: 30px;
}
header #spotlight span:not(:last-child):after {
content: "•";
margin-left: 30px;
}
JS:
$(window).load(function(){
animate_spotlight();
});
function animate_spotlight(){
var $current_spot = $('#spotlight span.active')
var pos = $current_spot.next().position().left;
$('#spotlight').stop().animate({
left : '-' + pos + 'px'
}, {easing : 'linear', duration : 3000, complete : function(){
$current_spot.next().addClass('active'); // Fetch new object
$current_spot.appendTo('#spotlight'); // Put the old object last in #spotlight elem.
$('#spotlight').css({left : 0 + 'px'}) // Reset the position
$current_spot.removeClass('active'); // Removes active class of the old elem.
animate_spotlight(); // Loop
}});
}
JS FIDDLE http://jsfiddle.net/7BMaF/2/