Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.12.2017, 18:15
Аспирант
Отправить личное сообщение для Sinevik Посмотреть профиль Найти все сообщения от Sinevik
 
Регистрация: 23.09.2017
Сообщений: 39

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

Sinevik,
не проверяйте стиль, вам нужен индекс !!! его и меняйте без всяких for и if.
3 строка
var index = 0;
Ответить с цитированием
  #3 (permalink)  
Старый 26.12.2017, 18:53
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 30,791

как устроены слайдеры (бесконечный цикл в обе стороны)
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>
Ответить с цитированием
  #4 (permalink)  
Старый 26.12.2017, 20:44
Аспирант
Отправить личное сообщение для Sinevik Посмотреть профиль Найти все сообщения от Sinevik
 
Регистрация: 23.09.2017
Сообщений: 39

Почему я не могу добаить +? пишет
"Вы должны добавить отзыв кому то еще?"
Ответить с цитированием
  #5 (permalink)  
Старый 27.12.2017, 00:41
Аватар для Белый шум
Профессор
Отправить личное сообщение для Белый шум Посмотреть профиль Найти все сообщения от Белый шум
 
Регистрация: 19.01.2012
Сообщений: 422

Защита от накруток
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему Jquery не работает в arcticmodal при вызове окна с большой высотой? sergey24 Общие вопросы Javascript 5 21.09.2017 15:49
Почему не работает? Rora Общие вопросы Javascript 7 10.05.2017 10:09
Почему не работает подключенный скрипт?? ivt22 Элементы интерфейса 1 04.01.2016 09:59
Не пойму почему не работает код? Mukhtar Events/DOM/Window 4 28.04.2013 23:01
Не могу понять, почему не работает автокомпил в IE 8 gargon2008 jQuery 0 07.06.2011 10:31