我写了一个小函数,基本上将 currentPosition 值作为参数,计算出该数字是否等于幻灯片总数,如果不等于,则为该值加 1,不幸的是,尽管我增加的数字似乎从未移动1.谁能告诉我哪里可能出错了?
var currentPosition = 0;
var slideWidth = 320;
var numberOfSlides = sliderSlides.children.length;
console.log('Number of slides = ', numberOfSlides);
//Remove scrollbar in js
sliderCtn.style.overflow = 'hidden';
//Set .slides width equal to total width of all slides
sliderSlides.style.width = slideWidth * numberOfSlides + 'px';
// Direction click handlers
sliderDirNext[det.clickEvent] = function(e) {
next(currentPosition);
sliderSlides.style.left = slideWidth*(-currentPosition) + 'px';
console.log('Slide width ', slideWidth);
stopEvent(e);
};
function next(currentPosition){
if( currentPosition === numberOfSlides ) {
return false;
} else {
currentPosition += 1;
console.log('Next current position = ', currentPosition);
return true;
}
}
最佳答案
解决方案。 不过,如果您提供更多上下文,很可能会有更好的方案:
window.currentPosition = 0;
function next(){
if( currentPosition === numberOfSlides ) {
return false;
} else {
currentPosition += 1;
console.log('Next current position = ', currentPosition);
return true;
}
}
<小时/>
OP更新后:
只要删除 next
函数 currentPosition
参数就可以解决您的问题,前提是您的其余逻辑是合理的。
关于javascript - currentPosition似乎永远不会离开1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9570083/