бегунок div выходит за границы (длина массива) - PullRequest
0 голосов
/ 13 ноября 2018

мой ползунок 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();
}

1 Ответ

0 голосов
/ 13 ноября 2018

Один замечательный парень только что помог мне, поэтому есть неверное условие

if(this.frame>elements.length)

он сбрасывает значение 'frame', когда текущее значение больше, чем количество элементов в массиве, но с учетомтот факт, что индексация элементов начинается с 0, когда frame равен elements.length - значение становится неопределенным, поэтому значение frame не уменьшается.

Итак, нам нужно изменить условие на сравнение == или сделать это> =;Спасибо пользователю: 186999 за решение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...