js实现点击向下展开的下拉菜单效果代码

yizhihongxing

实现点击向下展开的下拉菜单效果可以使用HTML和JavaScript来完成,下面是详细步骤:

HTML

首先,在HTML中需要创建一个下拉菜单的结构,包含一个触发下拉菜单的按钮和一个下拉菜单框,如下所示:

<div class="dropdown">
  <button class="dropbtn">下拉菜单</button>
  <div class="dropdown-content">
    <a href="#">菜单项一</a>
    <a href="#">菜单项二</a>
    <a href="#">菜单项三</a>
  </div>
</div>

其中,类名为dropdowndiv作为下拉菜单的容器,类名为dropbtnbutton作为触发下拉菜单的按钮,类名为dropdown-contentdiv作为下拉菜单框,里面包含多个菜单项。需要注意的是,dropdown-content的初始状态下应该是隐藏的。

CSS

然后,需要使用CSS设置下拉菜单的样式,包括下拉菜单按钮的样式和下拉菜单框的样式。其中,下拉菜单框的初始状态下应该是隐藏的,可以使用display:none来实现。当点击下拉菜单按钮时,下拉菜单框应该显示出来,可以使用display:block来实现。

.dropdown {
  position: relative;
  display: inline-block;
}

.dropbtn {
  background-color: #4CAF50;
  color: white;
  padding: 16px;
  font-size: 16px;
  border: none;
  cursor: pointer;
}

.dropdown-content {
  display: none;
  position: absolute;
  z-index: 1;
}

.dropdown-content a {
  color: black;
  padding: 12px 16px;
  text-decoration: none;
  display: block;
}

.dropdown-content a:hover {
  background-color: #f1f1f1
}

.show {
  display:block;
}

需要注意的是,使用JavaScript实现下拉菜单的展开和收缩时,需要为下拉菜单框添加类名show

JavaScript

最后,在JavaScript中需要为下拉菜单按钮添加一个点击事件,当点击按钮时展开或收缩下拉菜单。可以使用addEventListener方法来绑定点击事件,并结合classList属性中的addremove方法来切换下拉菜单的展开状态。

var btn = document.querySelector(".dropbtn");
var dropdownContent = document.querySelector(".dropdown-content");

btn.addEventListener("click", function() {
  dropdownContent.classList.toggle("show");
});

以下是两个示例,如下:

示例1

<div class="dropdown">
  <button class="dropbtn">下拉菜单</button>
  <div class="dropdown-content">
    <a href="#">菜单项一</a>
    <a href="#">菜单项二</a>
    <a href="#">菜单项三</a>
  </div>
</div>

<style>
.dropdown {
  position: relative;
  display: inline-block;
}

.dropbtn {
  background-color: #4CAF50;
  color: white;
  padding: 16px;
  font-size: 16px;
  border: none;
  cursor: pointer;
}

.dropdown-content {
  display: none;
  position: absolute;
  z-index: 1;
}

.dropdown-content a {
  color: black;
  padding: 12px 16px;
  text-decoration: none;
  display: block;
}

.dropdown-content a:hover {
  background-color: #f1f1f1
}

.show {
  display:block;
}
</style>

<script>
var btn = document.querySelector(".dropbtn");
var dropdownContent = document.querySelector(".dropdown-content");

btn.addEventListener("click", function() {
  dropdownContent.classList.toggle("show");
});
</script>

示例2

<div class="dropdown">
  <button class="dropbtn">下拉菜单2</button>
  <div class="dropdown-content">
    <a href="#">菜单项一2</a>
    <a href="#">菜单项二2</a>
    <a href="#">菜单项三2</a>
  </div>
</div>

<style>
.dropdown {
  position: relative;
  display: inline-block;
}

.dropbtn {
  background-color: blueviolet;
  color: white;
  padding: 16px;
  font-size: 16px;
  border: none;
  cursor: pointer;
}

.dropdown-content {
  display: none;
  position: absolute;
  z-index: 1;
}

.dropdown-content a {
  color: black;
  padding: 12px 16px;
  text-decoration: none;
  display: block;
}

.dropdown-content a:hover {
  background-color: #f1f1f1
}

.show {
  display:block;
}
</style>

<script>
var btn2 = document.querySelector(".dropbtn");
var dropdownContent2 = document.querySelector(".dropdown-content");

btn2.addEventListener("click", function() {
  dropdownContent2.classList.toggle("show");
});
</script>

以上就是实现点击向下展开的下拉菜单效果的完整攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js实现点击向下展开的下拉菜单效果代码 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • Bootstrap基本样式学习笔记之按钮(4)

    下面我将对“Bootstrap基本样式学习笔记之按钮(4)”这篇文章进行详细讲解。 标题 “Bootstrap基本样式学习笔记之按钮(4)” 前言 在这篇文章中,作者主要讲解了Bootstrap按钮组件的使用方法。Bootstrap是一款前端开发框架,而按钮是网站开发中不可或缺的组件之一。因此,学习Bootstrap的按钮组件对于想要学习前端开发的人来说是非…

    css 2023年6月11日
    00
  • CSS中元素的显示模式

    当我们使用 CSS 样式来定义元素的样式时,每个元素都有其默认的显示模式。在 CSS 中,有两种常见的元素显示模式:块级元素和内联元素。 块级元素 块级元素是指那些在页面中会像一块一块的显示,每个块独占一行的元素,比如 div、p、ul、li 等。块级元素可以设置宽度、高度、内外边距、背景颜色、文本颜色等样式属性。同时,它们还可以包含其他的块级元素以及内联元…

    css 2023年6月10日
    00
  • CSS columns实现两端对齐布局的示例代码

    实现两端对齐布局常常是前端开发的需求之一,CSS columns提供了一种简便的方式来实现。下面进行详细讲解: 什么是CSS columns? CSS columns是CSS3的一个模块,它使得文本流可以按照指定的列数进行排版。它可以对任意的块状元素进行拆分,使得文本像报纸一样分布在列中,还可以自动分页。CSS columns还支持分列后实现两端对齐排版。 …

    css 2023年6月10日
    00
  • vue.js+ElementUI实现进度条提示密码强度效果

    当我们在设计一个注册页面或是修改密码的页面时,可能会需要一个密码强度提示的功能。本文将以Vue.js为主框架,结合使用ElementUI组件,为大家详细介绍如何实现一个“进度条提示密码强度”的效果。 步骤一:加载ElementUI组件库 首先,我们需要在我们的项目中加载ElementUI组件库。我们可以通过以下命令来安装ElementUI: npm inst…

    css 2023年6月9日
    00
  • css如何让浮动元素水平居中

    以下是“CSS如何让浮动元素水平居中”的完整攻略: CSS如何让浮动元素水平居中 CSS可以通过多种方式让浮动元素水平居中,以下是实现水平居中的步骤: 设置浮动元素的宽度和高度。 设置浮动元素的左右外边距为“auto”。 设置浮动元素的父元素的文本对齐方式为“center”。 以下是两个示例说明: 示例1:使用文本对齐方式实现水平居中 假设一个用户需要让一个…

    css 2023年5月18日
    00
  • Class与ID区别 margin和padding区别 CSS学习笔记

    Class与ID区别- 使用 Class 和 ID 都可以为 HTML 元素添加样式,但二者存在以下区别:- ID 是给唯一的元素设置样式,而 Class 是可以给同类元素设置样式,一个元素可以同时拥有多个 Class。- ID 选择器的优先级要高于 Class 选择器,即当一个元素同时设置了 ID 和 Class 两种样式选择器,ID 选择器的样式属性会覆…

    css 2023年6月10日
    00
  • JS实现隔行换色的表格排序

    JS实现隔行换色的表格排序包括以下几个步骤: 获取表格元素 获取表格头部元素,并绑定点击事件,当点击表头时触发排序功能 解析表格数据,将数据存储到一个数组中,每一行数据为一个对象 编写排序函数,根据表头点击事件触发的不同,采用不同的排序方式,例如按照数值大小从小到大或从大到小排序、按照字母表顺序排序等 将排序后的数据重新渲染到表格中,并实现隔行换色的效果 以…

    css 2023年6月10日
    00
  • 利用边框border属性做的网页小符号

    利用CSS的边框border属性可以实现各种有趣的网页小符号,下面是完整的攻略。 1. 创建HTML结构 首先,我们需要创建相应的HTML结构来展示需要使用符号的地方。常见的是用列表 标签来展示符号列表,下面是一个示例: <ul> <li>符号1</li> <li>符号2</li> <li&g…

    css 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部