1

嗨,我有一个带有 jcarouselite 的页面,每 5 秒显示一些图像并自动滚动我想在单击轮播中的任何图像时停止滚动

这就是我想要做的

$(document).ready(function() {
    $('.slider_images').jCarouselLite({
        btnNext: "#next",
        btnPrev: "#prev",
        auto:  3000         
    }); 

    $(".slider_images img").click(function(){


        $('.slider_images').jCarouselLite({
            btnNext: "#next",
            btnPrev: "#prev",
            scroll: false       
        }); 


    });
});
4

6 回答 6

1

我很抱歉很晚才回复。我的问题解决了。我们可以通过改变 jcarousellite 的 pauseOnHover 选项来很容易地实现 stop on click 属性。如果你看到 pauseOnHover 的实现,它是这样的:

o.pauseOnHover ? ul.hover(function (){ paused == 1 }, function (){paused=0}) : "";

我们可以通过将 ul.hover 更改为 ul.click 来实现点击停止

o.pauseOnHover ? ul.click(function (){ paused == 1 }, function (){paused=0}) : "";

祝你今天过得愉快。

于 2011-05-24T10:14:26.090 回答
0

我阅读了一段时间的代码,发现自动滚动是通过使用以下代码实现的setTimeout

if(o.auto)
    setInterval(function() {
        go(curr+o.scroll);
    }, o.auto+o.speed);

如果你jCarouselLite第二次使用它不会停止setTimeout. 要停止 asetTimout你必须调用window.clearTimeout

var timeoutId = window.setTimeout(function(){...}, 100);

window.clearTimeout(timeoutId);

这是不可能的,因为 jcarousel 的代码没有为您提供这些timeoutId. 您可以与开发人员交谈或自行修改代码。

于 2011-04-06T16:00:00.487 回答
0
$(".mycarousel").trigger('stopCarousel');

如果您使用的是最新的 jcarousel https://github.com/kswedberg/jquery-carousel-lite/

尽管 pauseCarousel 是,但由于某种原因,此事件不在他们的文档中。

于 2013-12-03T21:57:16.550 回答
0

将此添加到文件顶部

var timers = new Array();

改变

setInterval(function(){go(curr+o.scroll)},o.auto+o.speed)  

timers.push(new Array( this.className, setInterval(function(){go(curr+o.scroll)},o.auto+o.speed)));

停止滚动

var classToStop = ".TestClass"; 

for(var i=0; i < timers.length; i++)
{
    if("."+timers[i][0] == uploadifyClass)
    window.clearInterval(timers[i][1])
}
于 2011-05-01T12:17:22.763 回答
0

这将停止页面上的所有轮播自动前进。我在这里杀死所有使用超时的东西。这对我有用:

$(".slider_images img").click(function(){
    var x = setTimeout("");
    for (var i = 0 ; i < x ; i++)
    clearTimeout(i);
}
于 2011-10-28T13:30:52.627 回答
0

我想不同意scheffield和/或找到使用此插件的解决方法,但我必须同意他的观点 - 需要重写源代码才能完成您想要的操作。或者,您可能需要考虑jquery cycle。它已经有“暂停”和“停止”方法。

于 2011-04-06T17:29:39.523 回答