2012-02-21 70 views
0

我正在寻找一些帮助来实现此链接到的脚本的计时器。为jQuery内容滑块添加自动化

现在,它在将列表悬停在右侧时切换不同的幻灯片,但我希望滑块在一段时间后自动跳到下一张幻灯片,直到达到结尾,然后返回到顶端。

但是,它也需要像现在这样工作,以便您可以通过悬停进行切换,并且当您停止悬停时,应该记住位置并跳到下一个项目。

我意识到这是很多要求,但一些指针会很好,非常感谢!

DEMOhttp://jsbin.com/acorah

回答

1

您的代码正在有点性能损失与each()循环,我不认为你需要的。您在循环中绑定事件,并通过在bind()范围内声明您的操作来限制您的可能性。你希望能够在任何对象上调用事件,而不仅仅是一个元素; $('.cn_item')你的情况。

想法是跟踪您的当前幻灯片与一个类,让我们说.cur
然后,您创建一个对象,在其中声明所有方法。主要的方法或行动是getCur()goTo(),其他大部分都会使用这些。即。 next()仅仅是goTo()

var actions = { 
    getCur: function(){ return idx; }, 
    goTo: function(idx){ 
     // The simplest case 
     $slides.hide().eq(idx).show(); 
    }, 
    next: function(){ this.goTo(this.getCur()+1); }, 
    prev: function(){ this.goTo(this.getCur()-1); } 
    . 
    . 
    . 
} 

快捷现在,你可以通过简单地这样呼吁的事件动作:

$slides.click(function(){ actions.goTo($(this).index()); }); 
$next.click(function(){ actions.next(); }); 

然后你就可以setInterval()添加一个计时器。

setInterval(actions.next, 1000); 

tutorial可能的帮助。我基本上涵盖了制作滑块所涉及的所有内容。我会在今天改变一些东西,我们学习每天编写东西的新方法。

+0

感谢您的回复,请您再详细阐述一下(特别是关于交换每个循环以及如何设置动作的部分),我是一个初学者,当涉及到这样的东西时。 – INT 2012-02-22 08:29:44

+0

请参阅编辑...我详细介绍了一下'each()'循环 – elclanrs 2012-02-22 08:49:35