Как реализовать список в html [закрыт]

139
09 февраля 2019, 06:20

При нажатии на картинку открывался список . Хотелось бы как здесь https://onloog.com/ . Скажу честно в этом деле новичек .

Answer 1

Это можно сделать за счёт "табов (Вкладок)".

$('.tabs-block .tab-link').on('click', function() { 
  if (!$(this).hasClass('active')) { 
    var parentTabs = $(this).closest('.tabs-block'); 
    parentTabs.find('.tab-link.active, .tab-content.active').removeClass('active'); 
    var elemIndex = $(this).index(); 
    $(this).addClass('active'); 
    parentTabs.find('.tab-content').eq(elemIndex).addClass('active'); 
  } 
});
body { 
  background: #ddd; 
} 
 
.tabs-block { 
  display: block; 
  width: 100%; 
  border-radius: 3px; 
  overflow: hidden; 
} 
 
.tab-link-block { 
  display: block; 
  width: 100%; 
  background: #4184f3; 
  overflow: hidden; 
} 
 
.tab-link { 
  padding: 0 10px; 
  height: 50px; 
  line-height: 50px; 
  color: #bbb; 
  white-space: nowrap; 
  text-overflow: ellipsis; 
  overflow: hidden; 
  cursor: pointer; 
} 
 
.tab-link:not(.active):hover { 
  background: rgba(255, 255, 255, .1); 
} 
 
.tab-link.active { 
  background: rgba(255, 255, 255, .1); 
  color: #fff; 
} 
 
.tab-content-block { 
  display: block; 
  width: calc(100% - 20px); 
  min-height: calc(50px - 20px); 
  padding: 10px; 
  background: #fefefe; 
  color: #333; 
} 
 
.tab-content:not(.active) { 
  display: none; 
} 
 
.tabs-block .tab-link-block { 
  height: 50px; 
} 
 
.tabs-block .tab-link-block::after { 
  content: ''; 
  display: block; 
  clear: both; 
} 
 
.tabs-block .tab-link { 
  display: inline-block; 
  float: left; 
  min-width: calc(50px - 20px); 
  max-width: calc(150px - 20px); 
  margin-right: 2px; 
} 
 
.tabs-block .tab-link.active { 
  box-shadow: 0 -3px 0 0 #f4b142 inset; 
} 
 
.tabs-block .tab-link:last-child { 
  margin-right: 0; 
} 
 
.tab-link { 
  -webkit-user-select: none; 
  -moz-user-select: none; 
  -ms-user-select: none; 
  transition: all linear .2s; 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
 
<div class="tabs-block"> 
  <div class="tab-link-block"> 
    <div class="tab-link active">Первая вкладка</div> 
    <div class="tab-link">Вторая вкладка</div> 
    <div class="tab-link">Третья вкладка</div> 
  </div> 
  <div class="tab-content-block"> 
    <div class="tab-content active">1</div> 
    <div class="tab-content">2</div> 
    <div class="tab-content">3</div> 
  </div> 
</div>

Источник

Answer 2

Сначала при помощи CSS нужно спрятать все списки которые должны появиться (display: none), создаете новый класс со свойством "display:" и необходимым значением. Например:

.list-show { 
    display: block;
}

Далее при помощи JS ловите событие нажатия на картинку и пишите условие, в котором при нажатии на картинку к вашим спискам добавлялся класс .list-show.

READ ALSO
При первой загрузке не отображается slick

При первой загрузке не отображается slick

Есть сайт, на главной странице два slick слайдера, один из них отображается нормально, а второй - при первой загрузке пуст, со второй загрузки...

128
Конвертация html в javascript

Конвертация html в javascript

можете объяснить,как можно вот этот код (структура и стили) представить в виде js файла? по сути нужно конвертировать html файл в js объекты которые...

131