我正在使用Javascript进行圆形图像轮播。
在某种意义上它必须是圆形的,如果当前选择0位置幻灯片并按下“上一个”,它将跳转到最后一个位置幻灯片。如果当前选择了最后一个位置幻灯片并按下“下一步”,它将跳转到0位置幻灯片。
另一个程序处理整个幻灯片,但我可以:
slide.current
换班后检测当前位置 - 第一个位置为0 slide.items.length
nextSlide
和previousSlide
函数slideTo()
手动更改当前选定的幻灯片和指针位置
这就是我所拥有的:
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
变量变得不正确。
答案 0 :(得分:0)
没有必要将lastSlide的值声明为“undefined”。如果声明变量而未指定任何值,则默认情况下它将变为未定义。
鉴于幻灯片充当对象,对于nextSlide和previousSlide充当方法而不是独立函数会更有意义。
lastSlide值应该取决于currentSlide的值。
应该使用严格的比较运算符来避免将来出现类型混乱。 (===而不是==)