Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Одностраничник. Включение нужного таба при нажатии на ссылку (https://javascript.ru/forum/dom-window/81384-odnostranichnik-vklyuchenie-nuzhnogo-taba-pri-nazhatii-na-ssylku.html)

Knxx 17.11.2020 12:10

Одностраничник. Включение нужного таба при нажатии на ссылку
 
Здравствуйте! Есть одностраничник. В верхней части есть 6 кнопок, каждой кнопке соответствует отдельный таб и его содержимое в нижней части страницы. Сейчас при нажатии на любую кнопку происходит прокрутка к якорю в нижней части, а затем табы нужно переключать вручную. Подскажите как сделать чтобы при нажатии на определенную кнопку открывался сразу нужный таб и содержимое.

Код кнопки:
<div class="button-wrapper">
   <a class="btn-solid-reg page-scroll" href="#features">MORE...</a>
</div>


Код переключателя табов:
<ul class="nav nav-tabs" id="argoTabs" role="tablist">
   <li class="nav-item">
   <a class="nav-link active" id="nav-tab-1" data-toggle="tab" href="#tab-1" role="tab" aria-controls="tab-1" aria-selected="false"><i class="fas fa-list"></i>EPC Auto Forge</a>
   </li>
   <li class="nav-item">
   <a class="nav-link" id="nav-tab-2" data-toggle="tab" href="#tab-2" role="tab" aria-controls="tab-2" aria-selected="false"><i class="fas fa-list"></i>All Data Online</a>
   </li>
   </li>
</ul>


Код содержимого табов:
<div class="tab-content" id="argoTabsContent">
   <div class="tab-pane fade show active" id="tab-1" role="tabpanel" aria-labelledby="tab-1">
       .......
   </div>
   <div class="tab-pane fade" id="tab-2" role="tabpanel" aria-labelledby="tab-2">
       .......
   </div>


Буду благодарен за помощь.

Was-Ja 17.11.2020 22:17

var panels=['Main', .... оcтальные ваши панели];
var panel_on = 'Main';

for(let i=1; i<panels.length; i++) document.all('d'+panels[i]).className='dhide';


function SetPanel(newid)
{ document.all('d'+panel_on).className='dhide';
  document.all('d'+newid).className='dshow';
  panel_on=newid;
}

<style type="text/css">
.dshow {display:inherit;}
.dhide {display:none;}
.dstart, .dhide, .dshow { width:100%;}
</style>

рони 17.11.2020 22:44

Цитата:

Сообщение от Was-Ja
document.all

https://developer.mozilla.org/ru/doc...I/Document/all
Цитата:

Устарело HTML5
Эта возможность была удалена из веб-стандартов. Хотя некоторые браузеры по-прежнему могут поддерживать её, она находится в процессе удаления. Не используйте её ни в старых, ни в новых проектах. Страницы или веб-приложения, использующие её, могут в любой момент сломаться.

Was-Ja 17.11.2020 22:52

Цитата:

Сообщение от рони
Устарело HTML5

Спасибо!!! По тексту тогда надо все с document.all на document.getElementById заменить.

У себя тоже поправил, спасибо, рони!!!

рони 17.11.2020 22:59

Was-Ja,
document.getElementById быстрее всего, но удобнее querySelector*

Was-Ja 17.11.2020 23:48

Цитата:

Сообщение от рони (Сообщение 530861)
Was-Ja,
document.getElementById быстрее всего, но удобнее querySelector*

о, классно, спасибо большое!

Knxx 18.11.2020 11:26

Всем спасибо, сделал через document.getElementById.click()
За querySelector тоже спасибо, удобная вещь. Не знал про него.


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