编写你的第一个浏览器脚本
让我们在移动屏幕上添加一个汉堡菜单(Hamburger Menus)以打开和关闭你的导航链接,这需要一些客户端的交互!
准备好…
- 创建一个汉堡菜单组件
- 编写一个
<script>
使你的网站访问者可以打开和关闭导航菜单 - 将你的 JavaScript 移动到
.js
文件中
搭建一个汉堡菜单组件
段落标题 搭建一个汉堡菜单组件创建一个 <Hamburger />
组件,用于打开和关闭移动端菜单。
-
在
src/components/
中创建一个名为Hamburger.astro
的文件。 -
将以下代码复制到你的组件中。这将表示你的三行「汉堡」菜单,在移动设备上打开和关闭导航链接菜单。(稍后你将把新的 CSS 样式添加到
global.css
中。)src/components/Hamburger.astro ------<div class="hamburger"><span class="line"></span><span class="line"></span><span class="line"></span></div> -
将这个新的
<Hamburger />
组件放置在Header.astro
的<Navigation />
组件之前。给我看看代码!
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 标签
段落标题 编写你的第一个 script 标签你的页眉还不具有交互性,因为它无法响应用户输入,比如点击汉堡菜单来显示或隐藏导航链接菜单。
添加一个 <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>