我的div滑块忽略了我所做的边框,找不到错误。 附言右/左函数在标记属性onclick:'slider.right()'中调用。我只是在学习,我知道代码的优雅远非理想。
let elArr = [];
let pusher = elArr.push(document.querySelectorAll('#scr>div'));
let elements = Array.from(elArr[0]);
let slider = {
frame: 0,
set: function(element){
var container = document.getElementById('scr');
container = element.style.visibility='visible';
},
init: function(){
this.set(elements[this.frame]);
},
left: function(){
elements[this.frame].style.visibility='hidden';
this.frame--;
if(this.frame<0)
this.frame = elements.length - 1;
this.set(elements[this.frame]);
},
right: function(){
elements[this.frame].style.visibility='hidden';
this.frame++;
if(this.frame>elements.length)
this.frame = 0;
this.set(elements[this.frame]);
}
};
window.onload = function(){
slider.init();
}
答案 0 :(得分:0)
一个好人刚刚帮了我,所以情况不正确
if(this.frame>elements.length)
当当前值大于数组中元素的数量时,它会丢弃``帧''值,但考虑到事实,当帧等于elements时,元素的索引从0开始。变为未定义,因此帧值不会下降。
因此,我们需要将条件更改为比较==或使其变为> =; 决定向用户:186999致谢