Отправка первого скрипта в браузер
Добавим гамбургер-меню для открытия и закрытия ваших ссылок на устройствах с мобильными экранами, требующие некоторой интерактивности на стороне клиента!
Приготовьтесь к...
- Создать компонент гамбургер-меню
- Написать
<script>
, чтобы позволить посетителям вашего сайта открывать и закрывать меню навигации - Перенесите свой JavaScript в
.js
файл
Создание компонента «Hamburger»
Создайте компонент <Hamburger />
, чтобы открывать и закрывать мобильное меню.
-
Создайте файл с именем
Hamburger.astro
вsrc/components/
-
Скопируйте следующий код в ваш компонент. Этот код будет представлять ваше 3-линийное «гамбургер-меню», чтобы открывать и закрывать ваши ссылки навигации на мобильных устройствах. (Новые стили CSS будут добавлены позже в
global.css
.) -
Разместите этот новый компонент
<Hamburger />
прямо перед компонентом<Navigation />
вHeader.astro
.
Покажите мне код!
- Добавьте следующие стили для вашего компонента Hamburger:
Напишите свой первый тег скрипта
Ваш заголовок пока не является интерактивным, потому что он не может реагировать на пользовательский ввод, такой как нажатие на меню гамбургеров, чтобы показать или скрыть навигационные ссылки.
Добавление тега <script>
обеспечивает клиентскую JavaScript, которая «слушает» событие пользователя, а затем реагирует соответствующим образом.
-
Добавьте следующий тег
<script>
вindex.astro
, прямо перед закрывающим тегом</body>
. -
Проверьте предварительный просмотр в браузере снова при разных размерах и убедитесь, что у вас работающее навигационное меню, которое адаптируется к размеру экрана и реагирует на пользовательский ввод на этой странице.
Импорт .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 на стороне клиента будет отправлен в браузер пользователя, когда он будет написан или импортирован: