2011-03-20 90 views
3

我正在使用jQuery jCarousel作为滑块,在几分钟后我找到了停止mouseover上滑块的方法,但问题是它不会立即停止在mouseover上,它只停留在图片集的结尾(我的演示中有3张图片)。但是,它会在鼠标移出时立即启动。我是新的JavaScript的东西,并不能通过潜水来源做很多事情。 :(jCarousel在鼠标悬停时立即停止

我当前的代码 - http://bit.ly/ijNcow

谢谢

+0

此问题已得到解决。请看看:http://code.google.com/p/jcarausel-lite-pause-on-hover-fixed/ – saikatbiswas82 2012-05-23 15:24:25

回答

1

的的jCarousel代码使用两个定时器,我可以看到包裹在jQuery的动画支持定时器和一个向前滚动的基础列表的计时器。项。您的网页的代码通过调用carousel.stopAuto()清除第二定时器,而不是动画计时器。因此,动画一直持续到下一个项目已经被滚动(从本质上说,第二项达到最高位置)。

要清除您还必须在传送带元素上调用jQuery的stop()函数。在猜测(不,我没有测试过这一点),你应该叫

$('#listing').stop(true); 

说了这么多,我不知道会发生用户体验,如果你已经通过动画暂停一半,然后再次启动它(通过移动鼠标,说)。动画不会在你离开的地方启动,这是肯定的。我还猜测,旋转木马会假设动画正常完成,并且您将获得“跳跃效果”,因为它将正确设置顶部项目。

+0

我测试过了:停止工作正常,但恢复似乎不可能,因为完整的回调的动画不会被调用。 – Matmarbon 2014-11-04 11:55:40

4

通常,我们通过使用.click()来管理jCarousel。在这种情况下 - 你可以用下面的代码来停止动画:

itemLoadCallback: { 
    onBeforeAnimation: function(jc, state) { 
     jc.lock(); 
    } 
} 

jc.lock()jc.unlock()功能停止和恢复动画,分别。