我做了一个永无止境的循环,头条新闻从一侧滑到另一侧。当标题到达末尾时,它会排在最后。
问题是我的标题宽度不同。这以具有不同动画速度的滑块结束。也许我的设置有误,但这是我的代码:
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 小提琴 http://jsfiddle.net/7BMaF/2/