Отправьте свой первый скрипт в браузер
Давайте добавим гамбургер-меню для открытия и закрытия ссылок на мобильных экранах, что потребует некоторой интерактивности на стороне клиента!
Приготовьтесь…
- Создать компонент гамбургер-меню
- Написать
<script>
, чтобы позволить посетителям вашего сайта открывать и закрывать меню навигации - Переместить ваш JavaScript в файл
.js
Создание компонента Hamburger
Заголовок раздела Создание компонента HamburgerСоздайте компонент <Hamburger />
, чтобы открывать и закрывать ваше мобильное меню.
-
Создайте файл с именем
Hamburger.astro
вsrc/components/
. -
Скопируйте следующий код в ваш компонент. Он будет представлять собой 3-строчное меню “гамбургер” для открытия и закрытия навигационных ссылок на мобильных устройствах. (Вы добавите новые CSS-стили в
global.css
позже). -
Поместите этот новый компонент
<Hamburger />
непосредственно перед компонентом<Navigation />
в файлеHeader.astro
.Покажите мне код!
-
Добавьте следующие стили для компонента Hamburger:
Напишите ваш первый тег скрипта
Заголовок раздела Напишите ваш первый тег скриптаВаш заголовок еще не интерактивен, потому что он не может реагировать на ввод пользователя, например, на нажатие на гамбургер-меню, чтобы показать или скрыть навигационные ссылки.
Добавление тега <script>
предоставляет JavaScript на стороне клиента, чтобы “слушать” события пользователя и реагировать соответствующим образом.
-
Добавьте следующий тег
<script>
вindex.astro
, непосредственно перед закрывающим тегом</body>
. -
Снова проверьте предварительный просмотр в браузере на различных размерах экрана и убедитесь, что у вас есть работающее меню навигации, которое реагирует как на размер экрана, так и на действия пользователя на этой странице.
Импорт файла .js
Заголовок раздела Импорт файла .jsВместо того чтобы писать JavaScript непосредственно на каждой странице, вы можете перенести содержимое тега <script>
в собственный файл .js
в вашем проекте.
-
Создайте папку
src/scripts/menu.js (вам придется создать новую папку
/scripts/`) и перенесите в нее ваш JavaScript. -
Замените содержимое тега
<script>
в файлеindex.astro
на следующий импорт файла: -
Проверьте предварительный просмотр в браузере снова на меньших размерах и убедитесь, что меню гамбургера по-прежнему открывает и закрывает ваши навигационные ссылки.
-
Добавьте тот же
<script>
с импортом на две другие страницы,about.astro
иblog.astro
, и убедитесь, что на каждой из них есть отзывчивая интерактивная шапка.
Ранее вы уже использовали JavaScript для создания некоторых частей вашего сайта:
- Динамического определения заголовка и названия страницы
- Отображения списка навыков на странице “О сайте”
- Условного отображения HTML-элементов
Все эти команды выполняются во время сборки для создания статического HTML для вашего сайта, а затем код “отбрасывается”.
JavaScript в теге <script>
отправляется в браузер и доступен для выполнения при взаимодействии с пользователем, например при обновлении страницы или переключении ввода.
Проверьте свои знания
Заголовок раздела Проверьте свои знания-
Когда Astro выполняет JavaScript, написанный во frontmatter компонента?
-
Дополнительно, Astro может отправить JavaScript в браузер, чтобы разрешить:
-
JavaScript на стороне клиента будет отправлен в браузер пользователя, когда он будет написан или импортирован: