使用scrollTo越野车的Jquery滑块

时间:2011-04-12 00:29:47

标签: jquery scroll

我正在尝试使用流行的slideTo插件开发一个jquery滑块。我已经掀起了一个jfiddle,所以你可以看到我制作的滑块的例子,以及代码: http://jsfiddle.net/Mh7Mh/

结果略有错误。当你到达最后一张幻灯片时它似乎没有回来,它应该。看看我的jquery - 我创建了一个if语句,它重置了告诉scrollTo在哪里滚动To的变量。代码非常自我解释。

任何帮助都可以解决这个问题。谢谢!

2 个答案:

答案 0 :(得分:1)

你有一个错误。有四个幻灯片,索引0,1,2,3。

所以使用这一行:

if (jesse == numSlides-1) {

和这些行:

      if (jesse == 0) {
        jesse = numSlides -1;

即使它以这种方式工作,但看起来并不合适。你会明白我的意思。

答案 1 :(得分:1)

这些函数的逻辑中存在多个错误。这是JS的改进版本:

// you were defining these vars in every function, not as global vars
var jesse = 0;
var lastSlide = 3;
// your numSlide var was off by one, renamed it to lastSlide

// you were adding these events multiple times for each li
$("#controls a.next").click(function() {
    (jesse==lastSlide)?(jesse=0):(jesse++);
     $("#contentSlider").stop().scrollTo('li:eq(' + jesse + ')', 500);
     return false;
});

$("#controls a.prev").click(function() {
    (jesse==0)?(jesse=lastSlide):(jesse--);
    $("#contentSlider").stop().scrollTo('li:eq(' + jesse + ')', 500);
    return false;
});

?:的用法称为三元操作。它类似于if/else statement

它的一般用法是:

foo=(booleanExpression)?bar:baz;
// it is equal to
if(booleanExpression){
    foo=bar;
}else{
    foo=baz;
}