@gleg0r

Как сделать, чтобы вкладки на сайте открывались по клику?

Добрый день, учу Javascript, но пока что все плохо.
Верстаю сейчас сайт там нужно сделать вкладки, их я сделал, все скрывается, но при клике они не открываются.
Вот HTML
<div class="block-service-tabs" id="tabs">
                        <div class="block-service-tabs__tab">
                            <span class="material-icons">trending_up</span>
                            <p>Statistics</p>
                            <span class="material-icons" styles=>arrow_drop_down</span>
                            
                        </div>
                        <div class="block-service-tabs__tab-content">
                            <img src="../img/service.png">
                            <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, <br/> <br/>quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in </p>
                        </div>
                        <div class="block-service-tabs__tab">
                            <span class="material-icons">mail</span>
                            <p>Inbox</p>
                            <span class="material-icons" styles=>arrow_drop_down</span>
                        </div>
                        <div class="block-service-tabs__tab-content">
                            <img src="../img/service.png">
                            <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, <br/> <br/>quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in </p>
                        </div>
                        <div class="block-service-tabs__tab">
                            <span class="material-icons">group</span>
                            <p>Team</p>
                            <span class="material-icons" styles=>arrow_drop_down</span>
                        </div>
                        <div class="block-service-tabs__tab-content">
                            <img src="../img/service.png">
                            <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, <br/> <br/>quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in </p>
                        </div>
                        <div class="block-service-tabs__tab">
                            <span class="material-icons">settings</span>
                            <p>Settings</p>
                            <span class="material-icons" styles=>arrow_drop_down</span>
                        </div>
                        <div class="block-service-tabs__tab-content">
                            <img src="../img/service.png">
                            <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, <br/> <br/>quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in </p>
                        </div>
                        <div class="block-service-tabs__tab">
                            <span class="material-icons">rss_feed</span>
                            <p>Feed</p>
                            <span class="material-icons" styles=>arrow_drop_down</span>
                        </div>
                        <div class="block-service-tabs__tab-content">
                            <img src="../img/service.png">
                            <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, <br/> <br/>quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in </p>
                        </div>
                    </div>

Вот JS
let tab; // заголовок вкладки
            let tabContent; // блок содержащий контент вкладки


            window.onload=function() {  // Скрываю при загрузке страницы
                tabContent=document.getElementsByClassName('block-service-tabs__tab-content');
                tab=document.getElementsByClassName('block-service-tabs__tab');
                hideTabsContent(1);
            }

            document.getElementById('block-service-tabs').onclick= function (event) { // Открываю по клику
                var target=event.target;
                if (target.className=='block-service-tabs__tab') {
                for (var i=0; i<tab.length; i++) {
                    if (target == tab[i]) {
                        showTabsContent(i);
                        break;
                        }
                    }
                }
            }

            function hideTabsContent(a) {                   // Функция, которая скрывает
                for (var i=a; i<tabContent.length; i++) {
                    tabContent[i].classList.remove('show');
                    tabContent[i].classList.add("hide");
                }
            }

            function showTabsContent(b){ // Функция, которая открывает
                if (tabContent[b].classList.contains('hide')) {
                    hideTabsContent(0);
                    tabContent[b].classList.remove('hide');
                    tabContent[b].classList.add('show');
                }
            }

Впервые пользуюсь хабром, не осуждайте плз
у hide: display: none
у show: display: flex
  • Вопрос задан
  • 120 просмотров
Решения вопроса 1
wapster92
@wapster92 Куратор тега JavaScript
Простейший пример
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы