Отправьте свой первый скрипт в браузер
Давайте добавим гамбургер-меню для открытия и закрытия ссылок на мобильных экранах, что потребует некоторой интерактивности на стороне клиента!
Приготовьтесь…
- Создать компонент гамбургер-меню
- Написать
<script>
, чтобы позволить посетителям вашего сайта открывать и закрывать меню навигации - Переместить ваш JavaScript в файл
.js
Создание компонента Hamburger
Заголовок раздела Создание компонента HamburgerСоздайте компонент <Hamburger />
, чтобы открывать и закрывать ваше мобильное меню.
-
Создайте файл с именем
Hamburger.astro
вsrc/components/
. -
Скопируйте следующий код в ваш компонент. Он будет представлять собой 3-строчное меню «гамбургер» для открытия и закрытия навигационных ссылок на мобильных устройствах. (Вы добавите новые CSS-стили в
global.css
позже).src/components/Hamburger.astro ------<div class="hamburger"><span class="line"></span><span class="line"></span><span class="line"></span></div> -
Поместите этот новый компонент
<Hamburger />
непосредственно перед компонентом<Navigation />
в файлеHeader.astro
.Покажите мне код!
src/components/Header.astro ---import Hamburger from './Hamburger.astro';import Navigation from './Navigation.astro';---<header><nav><Hamburger /><Navigation /></nav></header> -
Добавьте следующие стили для компонента Hamburger:
src/styles/global.css /* стили для навигации */.hamburger {padding-right: 20px;cursor: pointer;}.hamburger .line {display: block;width: 40px;height: 5px;margin-bottom: 10px;background-color: #ff9776;}.nav-links {width: 100%;top: 5rem;left: 48px;background-color: #ff9776;display: none;margin: 0;}.nav-links a {display: block;text-align: center;padding: 10px 0;text-decoration: none;font-size: 1.2rem;font-weight: bold;text-transform: uppercase;}.nav-links a:hover, a:focus {background-color: #ff9776;}.expanded {display: unset;}@media screen and (min-width: 636px) {.nav-links {margin-left: 5em;display: block;position: static;width: auto;background: none;}.nav-links a {display: inline-block;padding: 15px 20px;}.hamburger {display: none;}}
Напишите ваш первый тег скрипта
Заголовок раздела Напишите ваш первый тег скриптаВаш заголовок ещё не интерактивен, потому что он не может реагировать на ввод пользователя, например, на нажатие на гамбургер-меню, чтобы показать или скрыть навигационные ссылки.
Добавление тега <script>
предоставляет JavaScript на стороне клиента, чтобы «прослушивать» события пользователя и реагировать соответствующим образом.
-
Добавьте следующий тег
<script>
вindex.astro
, непосредственно перед закрывающим тегом</body>
.src/pages/index.astro <Footer /><script>document.querySelector('.hamburger').addEventListener('click', () => {document.querySelector('.nav-links').classList.toggle('expanded');});</script></body>