При нажатии на кнопку менять блок.
Добрый день. Я далек от js но потребовалось реализовать скрипт.
Есть 10 div'ов (Условно присвоим им классы "odin", "dva", ..., "desiat".) и 4 кнопки. При нажатии на кнопку 1 должен исчезнуть/спрятаться/замениться див "odin" и на его месте появиться див "dva", при следующем нажатии должен див "dva" замениться на див "tri" и т. д. При нажатии на кнопку два все должно происходить в обратную сторону. Кнопки 3 и 4 по умолчанию спрятаны. На 10 диве кнопка 1 должна быть заменена на кнопку 3. А на первом диве кнопка 2 должна заменяться на кнопку 4. Ну или можно сделать кучу кнопок. Например в див "odin" вставляем кнопки "1" и "2", при нажатии на кнопку два див исчезает вместе с кнопками и появляется див "dva" с кнопками "3" и "4" и далее в таком духе. |
Цитата:
Цитата:
|
Цитата:
Сейчас это реализовано просто заменой страниц. То есть меняется не див, а страница полностью. Код html и css могу сделать, но в js я вообще не в зуб ногой. |
Написал до того, когда увидел про страницы.
<button id="up">⇑</button> <button id="down">⇓</button> <div>Один</div> <div style="display:none;">Два</div> <div style="display:none;">Три</div> <div style="display:none;">Четыре</div> <script> var divs = document.querySelectorAll('div'), i = 0; down.onclick = function() { divs[i].style.display="none"; i = (i < (divs.length - 1))?i+1:0; divs[i].style.display="block"; } up.onclick = function() { divs[i].style.display="none"; i = (i > 0)?i-1:divs.length - 1; divs[i].style.display="block"; } </script> А другие страницы уже загружены в html? |
Цитата:
Цитата:
|
Симуляция нескольких страниц
<button id="up">⇑</button> <button id="down">⇓</button> <div class="page"> <div class="section">Один</div> <div class="section" style="display:none;">Два</div> <div class="section" style="display:none;">Три</div> <div class="section" style="display:none;">Четыре</div> </div> <div class="page"> <div class="section" style="display:none;">Пять</div> <div class="section" style="display:none;">Шесть</div> <div class="section" style="display:none;">Семь</div> </div> <script> var pages = document.querySelectorAll('.page'), divs = pages[0].querySelectorAll('div'), i = 0, j = 0; down.onclick = function() { divs[i].style.display="none"; i = (i < (divs.length - 1))?i+1:0; if(i == 0) { // здесь как-бы загрузка предыдущей страницы j = (j > 0)?j -1:pages.length - 1; divs = pages[j].querySelectorAll('div') } divs[i].style.display="block"; } up.onclick = function() { divs[i].style.display="none"; i = (i > 0)?i -1:divs.length - 1; if(i == divs.length - 1) { // здесь как-бы загрузка следующей страницы j = (j < (pages.length - 1))?j+1:0; divs = pages[j].querySelectorAll('div'); i = divs.length - 1; } divs[i].style.display="block"; } </script> |
Цитата:
Де у меня есть вот "это"... Хочу с "этим" сделать вот "так"... |
Цитата:
<header class="baner"> <div class="img"> <img src="images/#" alt=""> <button class="arrow left">next</div> <button class="arrow right">down</div> <div class="form_1"> <h2 class="heading">Имя</h2> <p class="text" >текст</p> </div> <div class="form_2"> <h2 class="heading">имя 2</h2> <p class="text" >текст 2 </p> </div> <div class="form_3"> <h2 class="heading">Имя 3</h2> <p class="text" >текст 3</p> </div> <div class="form_4"> <h2 class="heading">имя 4</h2> <p class="text" >текст 4 </p> </div> <div class="alert"> <p class="warning" >ПОВЕРНИТЕ УСТРОЙСТВО</p> </div> </div> </header> А есть еще css который позиционирует все так, что бы не было вертикальной прокрутки. Вставлять его сюда неразумно так как он на 200 строк. И таких страниц 11 штук с разным количеством form. |
Цитата:
Вот мой вариант по твоему "заданию"... :D <!DOCTYPE html> <html> <head> <meta http-equiv='Content-Type' content='text/html; charset=windows-1251' /> <script src='https://code.jquery.com/jquery-latest.js'></script> <!-- <script src="https://code.angularjs.org/1.3.9/angular.min.js"></script> <script src="https://code.angularjs.org/1.3.9/angular-route.js"></script> --> <style type='text/css'> .off { display: none; } #box > div { display: none; } #box > .on { display: block; } </style> <script type='text/javascript'> $(function(){ var ob=$('button'); ob.eq(0).click(function(){ var o=$('#box > .on'); var on=o.next(); if (on.length>0) { o.removeClass('on'); on.addClass('on'); } else { $(this).addClass('off'); ob.eq(1).removeClass('off') }; }); ob.eq(2).click(function(){ var o=$('#box > .on'); var on=o.prev(); if (on.length>0) { o.removeClass('on'); on.addClass('on'); } else { $(this).addClass('off'); ob.eq(3).removeClass('off') }; }); }) </script> </head> <body> <button>1</button> <button class='off'>3</button> <button>2</button> <button class='off'>4</button> <div id='box'> <div class='on'>Один</div> <div>Два</div> <div>Три</div> <div>Четыре</div> <div>Пять</div> <div>Шесть</div> <div>Семь</div> <div>Восемь</div> <div>Девять</div> <div>Десять</div> </div> </body> </html> |
Цитата:
|
Часовой пояс GMT +3, время: 04:43. |