jcarousellite停止点击

时间:2011-04-06 15:00:26

标签: javascript jquery jcarousellite

喜 我有一个页面与jcarousellite显示一些图像和滚动自动后每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       
        }); 


    });
});

6 个答案:

答案 0 :(得分:1)

我很抱歉很晚才回复。我的问题解决了。通过更改jcarousellite的pauseOnHover选项,我们可以非常轻松地实现点击属性的停止。如果你看到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}) : "";

祝你有个美好的一天。

答案 1 :(得分:0)

我读了一段时间的代码,发现自动滚动是使用setTimeout实现的:

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

如果您再次使用jCarouselLite,则不会停止setTimeout。要停止setTimout,您必须调用window.clearTimeout

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

window.clearTimeout(timeoutId);

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

答案 2 :(得分:0)

我想不同意scheffield和/或找到使用这个插件的工作,但我必须同意他的意思 - 它需要重写源代码来做你想做的事情。或者,您可以考虑jquery cycle。它已经有'暂停'和'停止'方法。

答案 3 :(得分: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])
}

答案 4 :(得分:0)

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

$(".slider_images img").click(function(){
    var x = setTimeout("");
    for (var i = 0 ; i < x ; i++)
    clearTimeout(i);
}

答案 5 :(得分:0)

$(".mycarousel").trigger('stopCarousel');

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

虽然pauseCarousel是。

,但由于某些原因,此事件不在他们的文档中