Menu
CoddyTech

Вкладки

Часть раздела JavaScript в действии путешествия по HTML на Coddy. Урок 1 из 27.

Вкладки позволяют пользователям переключаться между разными фрагментами содержимого, не покидая страницу. В разделе 4 мы создали их с помощью HTML и CSS. Теперь мы воспользуемся JavaScript. 

Ключевые моменты:

  1. Мы используем свойство display (none / block), чтобы скрывать и показывать элементы.
  2. Когда пользователь нажимает вкладку, мы вызываем функцию и передаём ей идентификатор вкладки.
  1. Внутри функции мы используем querySelectorAll + forEach, чтобы скрыть содержимое всех вкладок.
  2. Наконец, мы показываем ту вкладку, ID которой совпадает.
<div class="tabs">
  <button class="tab" onclick="openTab('services')">Services</button>
  <button class="tab" onclick="openTab('contact')">Contact</button>
</div>

<div id="services" class="tab-content">Our services are listed here.</div>
<div id="contact" class="tab-content" style="display:none;">Contact us at contact@example.com.</div>

<script>
  function openTab(tabId) {
    // Hide all tab contents
    document.querySelectorAll('.tab-content').forEach(el => el.style.display = 'none');
    // Show the selected tab
    document.getElementById(tabId).style.display = 'block';
  }
</script>
challenge icon

Задание

Легко

Мы уже написали функцию JavaScript, которая обеспечивает работу вкладок. Твоя задача: 

  1. Добавь атрибут onclick к каждой кнопке вкладки, чтобы при нажатии на вкладку отображалось соответствующее содержимое
  2. Вызови функцию openTab().
  3. Передай идентификатор содержимого вкладки (home, about или contact).

Попробуйте сами

<!DOCTYPE html>
<html>
<head>
  <title>Simple Tabs Example</title>
  <link rel="stylesheet" href="style.css">
</head>
<body>
  <div class="tabs">
    <!-- Каждая кнопка вызывает функцию и передаёт ей ID вкладки -->
    <button class="tab" >Home</button>
    <button class="tab" >About</button>
    <button class="tab" >Contact</button>
  </div>

  <!-- По умолчанию видна только вкладка "Home" -->
  <div id="home" class="tab-content">Welcome to the homepage!</div>
  <div id="about" class="tab-content" style="display:none;">Learn more about us here.</div>
  <div id="contact" class="tab-content" style="display:none;">Get in touch with us.</div>

  <script src="script.js"></script>
</body>
</html>
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела JavaScript в действии

Потренируйтесь самостоятельно: Песочница Web