喜 我有一个页面与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
});
});
});
答案 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是。
,但由于某些原因,此事件不在他们的文档中