我创建了一个功能,可以在我的网站标题中水平滚动多个图像。所以在我的标题里面我有类似这样的代码:
<div class='images'> <!-- this div is 150% wide with overflow hidden -->
<img src=... /><img src=... /><img src=... /><img src=... />
</div>
它应该像这样工作:
- 获取第一张图像,使用动画将其滚动到左侧的视野之外(使用它的
margin-left
属性) - 将第一个图像移动到最后(实际上它会删除图像并在最后创建一个新图像)。
- 重新启动整个过程。
我创建了以下功能:
function scroll()
{
var o = jQuery('.images').children().first();
var w = o.css('width');
var s = o.attr('src');
jQuery('.images:first-child').animate({'margin-left': "-"+w}, {'duration': 1000, 'complete': function(){
jQuery('.images').children().first().remove();
jQuery('.images').append("<img src='"+s+"' />");
scroll();}});
}
现在它的工作方式如下:第一个图像正确动画,然后所有下一个图像都不会滚动(动画不起作用),但是在1000
ms 时间之后,第一个图像被移动到最后。所以实际上图像正在改变,但动画不起作用。
我想scroll()
最后的函数被调用得太早了,但是如何正确链接呢?