Вертикальные табы

Сегодня мы сделаем адаптивные вертикальные табы (вкладки) для сайта

Сначала создадим структуру для вертикальных табов: обёртку - wrap-myvertical-tabs, сами вкладки - myvertical-tabs, а так же само содержимое - myvertical-tabs-content.

<div class="wrap-myvertical-tabs">
 
  <ul class="myvertical-tabs">
    <li class="chosen">Spring</li>
    <li>Summer</li>
    <li>Autumn</li>
  </ul>

  <div class="myvertical-tabs-content-wrap">
    <div class="myvertical-tabs-content active">About Spring</div>
    <div class="myvertical-tabs-content">About Summer</div>
    <div class="myvertical-tabs-content">About Autumn</div>
  </div>

</div>

Стилизация табов

.wrap-myvertical-tabs{
  max-width: 444px;
  display: flex;
}
.myvertical-tabs{
  list-style: none;
  background: #FFF;
  padding: 0;
  margin: 0;
}
.myvertical-tabs li{
  padding: 10px 15px;
  color: #777;
  cursor: pointer;
  background: #f7f7f7;
  border: 1px solid #e3e3e3;
  position: relative;
}
.myvertical-tabs li:hover {
  color: #434343;
  background: #efefef;
  border: 1px solid #e3e3e3;
}
.myvertical-tabs li.chosen {
  color: #434343;
  background: #efefef;
  border-right: 1px solid transparent;
}
.myvertical-tabs-content {
  display: none;
  background: #EFEFEF;
  padding: 10px 15px;
  margin-left: -1px;
}
.myvertical-tabs-content.active{
  display: block;
}

Самое интересное в JavaScript.

Обратите внимание, должен быть подключен jQuery перед написание скриптов.

$(function() {
  $('.myvertical-tabs').delegate('li:not(.chosen)', 'click', function() {
    $(this).addClass('chosen').siblings().removeClass('chosen')
     .parents('.wrap-myvertical-tabs').find('.myvertical-tabs-content')
     .hide().eq( $(this).index() ).fadeIn(170);
  });
});
21/09/2019 11:24
Изучаем английский
EnglishRussian
DelegateУчастник, делегировать
ChosenВыбранный
SiblingsРодной брат
ParentsРодители
Николай
21/09/2019 11:24