Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Почему перебор элементов не работает по кругу (https://javascript.ru/forum/misc/71989-pochemu-perebor-ehlementov-ne-rabotaet-po-krugu.html)

Sinevik 26.12.2017 19:15

Почему перебор элементов не работает по кругу
 
Суть такая. Просто жму на кнопку "next", запускается цикл, цикл перебирает элементы. Если находит элемент с z-index равным 10, то у самого элемента меняет его на 0, а у следующего за ним ставит z-index равным 10. То есть просто банальная переключалка друг за другом. Но почему не получается по кругу, то есть когда доходит до последнего элемента (и если у него z - index равен 10) то у себя ставит 1, а у первого 10) что бы заново запустить круг. Мой код работает до последнего а дальше ошибка, подскажите почему?
https://jsfiddle.net/3shy5epq/2/

рони 26.12.2017 19:29

Sinevik,
не проверяйте стиль, вам нужен индекс !!! его и меняйте без всяких for и if.
3 строка
var index = 0;

рони 26.12.2017 19:53

как устроены слайдеры (бесконечный цикл в обе стороны)
 
Sinevik,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
    article{
      position: absolute;
      height: 100px;
      width: 100px;
      background-color: #FFFFFF;
    }
    div {
      position: relative;
    }

  </style>


</head>

<body>
<input name="" type="button" value="prev" onclick="prev()"> <input name="" type="button" value="next" onclick="next()">
<div>
<article style="z-index: 10">1</article>
<article>2</article>
<article>3</article>
<article>4</article>
<article>5</article>
</div>

 <script>
var slider = document.getElementsByTagName("article");
var index = 0;
function next()
{
   slider[index].style.zIndex = 1;
   index = ++index % slider.length;
   slider[index].style.zIndex = 10;
}

function prev()
{
   slider[index].style.zIndex = 1;
   --index < 0 && (index = slider.length - 1);
   slider[index].style.zIndex = 10;
}
  </script>
</body>
</html>

Sinevik 26.12.2017 21:44

Почему я не могу добаить +? пишет
"Вы должны добавить отзыв кому то еще?"

Белый шум 27.12.2017 01:41

Защита от накруток


Часовой пояс GMT +3, время: 23:53.