在Javascript中确定图像轮播的下一个正确移动

时间:2013-10-15 22:30:29

标签: javascript jquery logic

我正在使用Javascript进行圆形图像轮播。

在某种意义上它必须是圆形的,如果当前选择0位置幻灯片并按下“上一个”,它将跳转到最后一个位置幻灯片。如果当前选择了最后一个位置幻灯片并按下“下一步”,它将跳转到0位置幻灯片。

另一个程序处理整个幻灯片,但我可以:

  • 使用slide.current 换班后检测当前位置 - 第一个位置为0
  • 使用slide.items.length
  • 检测幻灯片的总数(在页面重新加载之前不会更改)
  • 在幻灯片程序完成自己的补充功能后触发我自己的nextSlidepreviousSlide函数
  • 使用幻灯片API
  • 中的slideTo()手动更改当前选定的幻灯片和指针位置
  • 自动了解页面加载后第一张可见幻灯片是项目总数(3到n)除以2,向上舍入

这就是我所拥有的:

var currentSlide = slide.current;
var lastSlide = 'undefined';

function nextSlide(){
    currentSlide = slide.current;

    if(lastSlide == 'undefined'){
        lastSlide = currentSlide - 1;
    } else if (lastSlide == 0) {
        lastSlide = currentSlide;
    } else{
        lastSlide = lastSlide + 1;
    }

    if (lastSlide == currentSlide) {
        slide.activate(0);
    }
}

function previousSlide(){
    currentSlide = slide.current;

    if(lastSlide == 'undefined'){
        lastSlide = currentSlide + 1;
    } else if (lastSlide == slide.items.length - 1) {
        lastSlide = currentSlide;
    } else{
        lastSlide = lastSlide - 1;
    }

    if (lastSlide == currentSlide) {
        slide.activate(sly.items.length - 1);
    }
}

当您混合previousSlide个电话和nextSlide电话时,此操作失败。 lastSlide变量变得不正确。

1 个答案:

答案 0 :(得分:0)

  • 没有必要将lastSlide的值声明为“undefined”。如果声明变量而未指定任何值,则默认情况下它将变为未定义。

  • 鉴于幻灯片充当对象,对于nextSlide和previousSlide充当方法而不是独立函数会更有意义。

  • lastSlide值应该取决于currentSlide的值。

  • 应该使用严格的比较运算符来避免将来出现类型混乱。 (===而不是==)