<header>
<h2 class="title">hashchange</h2>
<p class="description">Подія, яка спрацьовує при зміні фрагмента URL після решітки (#).</p>
</header>
<main>
<div class="tabs">
<button id="tab1" class="tab-button">Вкладка 1</button>
<button id="tab2" class="tab-button">Вкладка 2</button>
<button id="tab3" class="tab-button">Вкладка 3</button>
</div>
<div class="result">
<h3 id="content-title">Виберіть вкладку</h3>
<p id="content-text">Тут буде показаний контент вибраної вкладки.</p>
</div>
</main>
body {
font-size: 16px;
line-height: 1.5;
font-family: monospace;
}
header {
background-color: #f1f1f1;
margin-bottom: 25px;
padding: 15px;
box-shadow: 0px 0px 3px rgba(118, 118, 118, 1);
}
header h2.title {
padding-bottom: 15px;
border-bottom: 1px solid #999;
}
header p.description {
font-style: italic;
color: #222;
}
.tabs {
margin-bottom: 20px;
}
.tab-button {
padding: 10px 15px;
font-size: 16px;
margin-right: 10px;
cursor: pointer;
border: 1px solid #ccc;
background-color: #eaeaea;
}
.tab-button:hover {
background-color: #d8d8d8;
}
.result {
background-color: #f8f8f8;
padding: 15px;
box-shadow: 0px 0px 3px rgba(118, 118, 118, 1);
}
h3 {
margin-top: 0;
}
// Функція для оновлення контенту на основі хешу
function updateContent() {
const hash = location.hash;
const contentTitle = document.getElementById('content-title');
const contentText = document.getElementById('content-text');
switch (hash) {
case '#tab1':
contentTitle.textContent = 'Вкладка 1';
contentText.textContent = 'Це контент для Вкладки 1.';
break;
case '#tab2':
contentTitle.textContent = 'Вкладка 2';
contentText.textContent = 'Це контент для Вкладки 2.';
break;
case '#tab3':
contentTitle.textContent = 'Вкладка 3';
contentText.textContent = 'Це контент для Вкладки 3.';
break;
default:
contentTitle.textContent = 'Виберіть вкладку';
contentText.textContent = 'Тут буде показаний контент вибраної вкладки.';
break;
}
}
// Прослуховування події hashchange
window.addEventListener('hashchange', updateContent);
// Налаштування кнопок для зміни хешу
document.getElementById('tab1').addEventListener('click', () => {
location.hash = '#tab1';
});
document.getElementById('tab2').addEventListener('click', () => {
location.hash = '#tab2';
});
document.getElementById('tab3').addEventListener('click', () => {
location.hash = '#tab3';
});
// Оновлення контенту при першому завантаженні сторінки
updateContent();
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.