пятница, 4 августа 2017 г.

Учим JavaScript. 36. Вкладки

index.html


<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<link rel="stylesheet" href="style.css">
<script src="1.js"></script>
</head>
<body>
<div class="tabs">
<div class="tabs-header">
<div class="tab-h active" data-tab="0">Один</div>
<div class="tab-h" data-tab="1">Два</div>
<div class="tab-h" data-tab="2">Три</div>
</div>

<div class="tabs-body">
<div class="tab-b" style="display:block">Текст 1</div>
<div class="tab-b">Текст 2</div>
<div class="tab-b">Текст 3</div>
</div>
</div>
</body>
</html>

style.css
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}

.tabs {
width: 600px;
/* height: 350px;*/
/* background: pink;*/
margin: 50px auto;
font-family: sans-serif;
}

.tab-h {
display: inline-block;
padding: 5px 10px;
line-height: 30px;
border: 1px solid black;
text-align: center;
cursor: pointer;
}

.tab-b {
display: none;
padding: 20px;
border: 1px solid black;
}

.tabs-header {
position: relative;
z-index: 2;
}

.tabs-body {
position: relative;
top: -1px;
z-index: 1;
}

.active {
border-bottom: 1px solid white;
}

1.js
window.onload = function() {
document.querySelector('.tabs-header').addEventListener('click', fTabs);

function fTabs(event) {
console.log(event);

if(event.target.className == 'tab-h') {
var dataTab = event.target.getAttribute('data-tab'); // номер вкладки, которую нужно отобразить

// отключить класс active
var tabH = document.getElementsByClassName('tab-h');
for(var i = 0; i < tabH.length; i++) {
tabH[i].classList.remove('active');
}

event.target.classList.add('active');

var tabBody = document.getElementsByClassName('tab-b'); // получим массив всех вкладок

for(i=0; i<tabBody.length; i++) {
if(dataTab == i) {
tabBody[i].style.display = 'block';
}
else {
tabBody[i].style.display = 'none';
}
}
}

}
}

Комментариев нет:

Отправить комментарий