Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.11.2016, 06:23
Аспирант
Отправить личное сообщение для snovapavel Посмотреть профиль Найти все сообщения от snovapavel
 
Регистрация: 08.03.2015
Сообщений: 78

Как перебирать содержимое одновременно?
Добрый день!

Есть слайдер, который перебирает, собственно, слайды:

<ul class="container">
  <li class="cell showing">Содержимое 1</li>
  <li class="cell">Содержимое 2</li>
  <li class="cell">Содержимое 3</li>
</ul>

  <br>
  <br>

<ul class="container">
  <li class="cell showing">Содержимое 1</li>
  <li class="cell">Содержимое 2</li>
  <li class="cell">Содержимое 3</li>
</ul>


С одним контейнером работает отлично, но, если добавить ещё один контейнер на страницу с другим содержимым, вместо того, чтобы листать содержимое этих двух контейнеров синхронно, он вначале пролистывает содержимое первого контейнера, а затем второго.

Как заставить их работать синхронно?

Сам код:

var slides = document.querySelectorAll('.container .cell');
var currentSlide = 0;
var slideInterval = setInterval(nextSlide,2000);

function nextSlide() {
    slides[currentSlide].className = 'cell';
    currentSlide = (currentSlide+1)%slides.length;
    slides[currentSlide].className = 'cell showing';
}


И можно ли избавиться от класса .showing?

Большое спасибо!

Последний раз редактировалось snovapavel, 09.11.2016 в 06:34.
Ответить с цитированием
  #2 (permalink)  
Старый 09.11.2016, 07:15
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

Сообщение от snovapavel
И можно ли избавиться от класса .showing?
и как "листать" без класса?
Сообщение от snovapavel
Как заставить их работать синхронно?
циклом по .container
Ответить с цитированием
  #3 (permalink)  
Старый 09.11.2016, 09:43
Аспирант
Отправить личное сообщение для snovapavel Посмотреть профиль Найти все сообщения от snovapavel
 
Регистрация: 08.03.2015
Сообщений: 78

А как циклом? Он их по очереди листает. Сначала один контейнер ul потом второй, а синхронно оба не хочет
Ответить с цитированием
  #4 (permalink)  
Старый 09.11.2016, 10:19
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

синхронизация слайдеров
snovapavel,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  li{
    display: none;
  }
 li.showing {
    display: block;
 }

  </style>

  <script>
window.addEventListener('DOMContentLoaded', function nextSlide() {
[].forEach.call( document.querySelectorAll('.container'), function(el) {
       var li = el.querySelector('.showing');
           li && li.classList.toggle('showing');
           li = li && li.nextElementSibling||el.querySelector('li');
           li.classList.toggle('showing');
});
window.setTimeout(nextSlide, 2000)
    });
  </script>
</head>

<body>
<ul class="container">
  <li class="cell">Содержимое 1</li>
  <li class="cell">Содержимое 2</li>
  <li class="cell">Содержимое 3</li>
</ul>

  <br>
  <br>

<ul class="container">
  <li class="cell">Содержимое 1</li>
  <li class="cell">Содержимое 2</li>
  <li class="cell">Содержимое 3</li>
</ul>


</body>
</html>

Последний раз редактировалось рони, 09.11.2016 в 11:51.
Ответить с цитированием
  #5 (permalink)  
Старый 09.11.2016, 11:41
Аспирант
Отправить личное сообщение для snovapavel Посмотреть профиль Найти все сообщения от snovapavel
 
Регистрация: 08.03.2015
Сообщений: 78

Уважаемый, Рони, может этот класс «.showing» можно как-нибудь автоматически назначать в самом начале первому элементу?

Большое спасибо за помощь!
Ответить с цитированием
  #6 (permalink)  
Старый 09.11.2016, 11:51
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

snovapavel,
смотрите код снова
Ответить с цитированием
  #7 (permalink)  
Старый 10.11.2016, 20:11
Аспирант
Отправить личное сообщение для snovapavel Посмотреть профиль Найти все сообщения от snovapavel
 
Регистрация: 08.03.2015
Сообщений: 78

Большое спасибо!

Скажите, пожалуйста, как динамически добавить кнопки previous и next к каждому слайдеру? Чтобы не прописывать их в разметке?

А я их потом спозиционирую как нужно с помощью CSS.

Большое спасибо!
Ответить с цитированием
  #8 (permalink)  
Старый 10.11.2016, 20:22
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

snovapavel,
Ответить с цитированием
  #9 (permalink)  
Старый 11.11.2016, 06:06
Аспирант
Отправить личное сообщение для snovapavel Посмотреть профиль Найти все сообщения от snovapavel
 
Регистрация: 08.03.2015
Сообщений: 78

Да уж... Подскажете?

На старом сайте работал вот такой код:

function nextSlide() {
    goToSlide(currentSlide+1);
}

function previousSlide() {
    goToSlide(currentSlide-1);
}

var next = document.getElementById('next');
var previous = document.getElementById('previous');

next.onclick = function() {
    nextSlide();
};
previous.onclick = function() {
    previousSlide();
};


Но в новом коде, отсутствует переменная «currentSlide» и я не знаю за что зацепиться.
Ответить с цитированием
  #10 (permalink)  
Старый 11.11.2016, 07:01
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

snovapavel,
был самокат, а вы просите примотать изолентой к нему панель управления, где мотор? фары? чем управлять?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить содержимое тега script vanpitkinobi@yandex.ru Events/DOM/Window 2 14.04.2016 14:10
Как с помощью js поменять содержимое content у псевдоэлементов before и after? grifangel Общие вопросы Javascript 3 17.10.2013 21:11
Как вывести на экран содержимое тега ср1251 Общие вопросы Javascript 15 30.09.2013 20:39
Управление скроллом "а-ля тач" HonesT Элементы интерфейса 2 27.08.2013 14:25
Как разместить содержимое с другой страницы сайта Phil_F Элементы интерфейса 2 15.07.2013 06:11