如何使用 CSS 和 JavaScript 创建一个可点击的下拉菜单?
要使用 CSS 和 JavaScript 创建一个可点击的下拉菜单,这有助于在网页中添加更多选项、内容或链接,同时节省空间,避免网页过于拥挤。用户应该具备 CSS 和 JavaScript 的基本知识,才能设计并为下拉菜单添加交互性。
在这篇文章中,我们有一个按钮和三个链接,我们的任务是使用 CSS 和 JavaScript 创建一个可点击的下拉菜单。
创建可点击下拉菜单的步骤
我们将按照以下步骤使用 CSS 和 JavaScript 创建一个可点击的下拉菜单
使用 HTML 构建下拉菜单
- 要创建下拉菜单,我们使用了 按钮 和三个 锚 标签来创建一个带有三个下拉菜单链接的按钮,并将所有链接包装在一个具有 menuList 类的 div 元素中。
- 我们将包括按钮和下拉链接在内的所有元素都包装在一个具有 container 类的 div 元素中。
以下是上述使用 HTML 创建可点击下拉菜单的步骤的 HTML 实现。
<div class="container"> <button class="drop_btn">Open</button> <div class="menuList"> <a class="links" href="">Contact Us</a> <a class="links" href="">Visit Us</a> <a class="links" href="">About Us</a> </div> </div>
使用 CSS 设计下拉菜单
- container 类使用 position 属性将菜单链接相对于容器而不是整个页面定位,并使用 display 属性仅占用所需的宽度。
- drop_btn 类通过设置其 背景颜色、文本 颜色、填充、字体大小、宽度、字体系列 并删除 边框 来设计“打开”按钮。
- 然后,我们使用 menuList 类设计了下拉菜单列表。在这里,我们最初使用 display 属性隐藏列表,将其相对于容器定位,将 min-width 属性设置为与按钮宽度匹配,并在与其他元素重叠时使用 z-index 属性赋予更高的优先级。
- 接下来,我们使用 links 类设计了所有锚链接。我们设置了它们的 文本对齐,使用 text-decoration 删除链接的下划线,设置链接的边框、颜色和填充。
- 我们对链接和按钮使用了 :hover 伪类,以便在悬停时更改背景颜色和文本颜色。
以下是上述使用 CSS 设计下拉菜单的步骤的 CSS 实现。
.container { position: relative; display: inline-block; } .drop_btn { background-color: #031926; color: white; padding: 16px; font-size: 16px; font-family: Verdana, sans-serif; border: none; width: 160px; } .menuList { display: none; position: absolute; background-color: #031926; color: white; min-width: 160px; z-index: 1; } .links { text-align: center; color: rgb(255, 255, 255); padding: 12px 16px; text-decoration: none; display: block; font-size: 18px; border: 1px solid #031926; } .links:hover { background-color: white; color: #031926; } .container:hover .drop_btn { background-color: #04af2f; color: white; }
使用 JavaScript 为下拉菜单添加功能
- 首先,我们使用 querySelector() 方法分别为按钮和包含所有链接的菜单列表初始化了两个变量,即 dropdownBtn 和 menuContent。
- 然后,我们使用 addEventListener() 方法向 dropdownBtn 添加了一个点击事件,该方法使用简单的 if-else 条件语句在单击按钮时隐藏和显示菜单链接。
- 单击按钮后,如果菜单列表隐藏,即 display === "",则使用 display = "block" 显示菜单列表;如果菜单列表已显示,则单击按钮后将其隐藏。
- 类似地,我们添加了一个点击事件,当单击按钮和菜单列表外部时,如果菜单列表正在显示,则将其隐藏。它使用 contains() 方法检查点击事件是否在按钮或菜单列表内部。
以下是上述使用 JavaScript 添加功能的步骤的实现。
let dropdownBtn = document.querySelector('.drop_btn'); let menuContent = document.querySelector('.menuList'); dropdownBtn.addEventListener('click', () => { if (menuContent.style.display === "") { menuContent.style.display = "block"; } else { menuContent.style.display = ""; } }) document.addEventListener('click', (e) => { if (!menuContent.contains(e.target) && !dropdownBtn.contains(e.target)) { menuContent.style.display = ""; } });
完整示例代码
以下是使用 CSS 和 JavaScript 创建可点击下拉菜单的完整示例代码。
<!DOCTYPE html> <html> <head> <title> Creating a clickable dropdown menu with CSS and JavaScript </title> <style> .container { position: relative; display: inline-block; } .drop_btn { background-color: #031926; color: white; padding: 16px; font-size: 16px; font-family: Verdana, sans-serif; border: none; width: 160px; } .menuList { display: none; position: absolute; background-color: #031926; color: white; min-width: 160px; z-index: 1; } .links { text-align: center; color: rgb(255, 255, 255); padding: 12px 16px; text-decoration: none; display: block; font-size: 18px; border: 1px solid #031926; } .links:hover { background-color: white; color: #031926; } .container:hover .drop_btn { background-color: #04af2f; color: white; } </style> </head> <body> <h3> To Create a Clickable Dropdown Menu with CSS and JavaScript </h3> <div class="container"> <button class="drop_btn">Open</button> <div class="menuList"> <a class="links" href="">Contact Us</a> <a class="links" href="">Visit Us</a> <a class="links" href="">About Us</a> </div> </div> <script> let dropdownBtn = document.querySelector('.drop_btn'); let menuContent = document.querySelector('.menuList'); dropdownBtn.addEventListener('click', () => { if (menuContent.style.display === "") { menuContent.style.display = "block"; } else { menuContent.style.display = ""; } }) document.addEventListener('click', (e) => { if (!menuContent.contains(e.target) && !dropdownBtn.contains(e.target)) { menuContent.style.display = ""; } }); </script> </body> </html>
结论
在这篇文章中,我们了解了如何使用 CSS 和 JavaScript 创建一个可点击的下拉菜单。我们使用了三个步骤的过程,即创建、设计和为下拉按钮添加交互性。我们使用了基本的 CSS 属性和点击事件来创建可点击的下拉菜单。
广告