открытие скрытых div кнопками вперед.назад
Доброго дня! Подскажите пожалуйста код:
Есть две кнопки - вперед и назад. Есть несколько скрытых блоков с контентом и один из них должен быть изначально видимый, все они в едином блоке. Например: <button id="back"></button> <button id="forw"></button> <div class="content"> <div class="item1">видимый</div> <div class="item2">не видимый</div> <div class="item3">не видимый</div> <div class="item4">не видимый</div> <div class="item5">не видимый</div> </div> Необходимо, что бы по нажатию кнопки вперед - содержимое следующего дива из списка становилось видимым, а предыдущее не видимым, а кнопки назад - наоборот соответственно и так по зацикленному кругу. Подскажите пожалуйста такой код. |
TarasL85,
на форуме сотни примеров ... TarasL85, https://javascript.ru/forum/misc/782...tml#post511471 медитировать над строкой 148 (CURRENT_IMG_INDEX + IMG_LENGTH + i) % IMG_LENGTH; искать другие примеры "простейшая" "простейший" |
Все что нахожу, либо для картинок, либо карусель. Мне необходимо что бы менялось свойство display, то есть все абсолютно как при обычных вкладках, только смена display:none осуществляется кнопками вперед/назад по кругу, а не как у классических вкладок где каждой вкладке соответствует своя кнопка.
|
кнопки вперёд назад
TarasL85,
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
.content .item{
display: none;
}
.content .item.show{
display: block;
}
</style>
<script>
document.addEventListener( "DOMContentLoaded" , function() {
const on = (parent, event, selector, fn) => parent.addEventListener(event, ({target}) => {
if(target = target.closest(selector)) fn(target)
});
const parent = document.querySelector(".content");
const children = parent.children;
let index = [...parent.children].indexOf(parent.querySelector(".show"));
const show = ({dataset : {up}}) => {
children[index].classList.remove("show");
index = (Number(up) + index + children.length) % children.length;
children[index].classList.add("show");
};
on(document, "click", "[data-up]", show);
});
</script>
</head>
<body>
<button data-up="-1">back</button>
<button data-up="1">forw</button>
<div class="content">
<div class="item show">1</div>
<div class="item">2</div>
<div class="item">3</div>
<div class="item">4</div>
<div class="item">5</div>
</div></body>
</html>
|
Цитата:
|
Просто нет слов, это именно то что мне так нужно! Спасибо огромное, даже не ожидал так быстро получить помощь!!! Так как у меня сайт в большей степени текст, это очень сильно поможет улучшить его восприятие и разнообразит.
|
| Часовой пояс GMT +3, время: 09:30. |