3

我正在尝试在 jQuery 中创建一个轮播,它像股票行情一样不断滚动(即:滚动动画中不应该有暂停。)

请参阅到目前为止我在这里尝试过的 jsFiddle 示例:http: //jsfiddle.net/c5VQe/

使用下面的代码,我在 3 行代码中创建了一个轮播,它完全符合我的要求,只是轮播旋转一次后会有一点延迟。

function RotateCarousel() {  
    $("ul li:first-child").animate({ marginLeft: -200  }, 1500, function () {
        $("ul li:first-child").appendTo('ul');
        $("ul li:last-child").css('margin-Left', 0);
        RotateCarousel();
    });
}

我怎样才能摆脱这种延迟?

注意:我对使用任何插件都不感兴趣。应该可以在不使用大量不必要的代码的情况下消除延迟。

4

1 回答 1

2

只需将easing选项设置为linear

$("ul li:first-child").animate({ marginLeft: -200 }, 1500, 'linear', function () {
//                                                         ^-- here

小提琴

由于您之前没有设置过,jQuery 将其默认为swing.

.animate()文档:

缓和

的其余参数.animate()是一个字符串,命名要使用的缓动函数。缓动函数指定动画在动画中不同点的进展速度。jQuery 库中唯一的缓动实现是默认的,称为swing,以及以恒定速度进行的,称为 linear.


旁注:您setTimeout()的语法错误,应该是

setTimeout(RotateCarousel, 1500); //passing a function object reference

延迟轮播的初始化。

于 2012-10-21T03:47:32.840 回答