0

我正在使用 Javascript 制作圆形图像轮播。

它需要是圆形的,如果当前选择了 0 位置幻灯片并按下“上一个”,它将跳转到最后一个位置幻灯片。如果当前选择了最后一个位置幻灯片并按下“下一步”,它将跳转到 0 位置幻灯片。

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

  • 移位检测当前位置slide.current- 第一个位置是 0
  • 检测幻灯片的总数(在页面重新加载之前不会改变)slide.items.length
  • 在幻灯片程序完成自己的补充功能后触发我自己的nextSlide和功能previousSlide
  • slideTo()使用幻灯片 API手动更改当前选定的幻灯片和指针位置
  • 自动知道页面加载后的第一张可见幻灯片是项目总数(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变量变得不正确。

4

1 回答 1

0
  • 无需将 lastSlide 的值声明为“未定义”。如果您声明一个变量而不分配任何值,则默认情况下它会变为未定义。

  • 鉴于 slide 充当对象,将 nextSlide 和 previousSlide 作为方法而不是独立函数会更有意义。

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

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

于 2013-10-15T22:57:44.520 回答