`

javascript——JS 实现下拉菜单

阅读更多

JS简单实现下拉菜单

首先,写一个菜单条,包含菜单,加上菜单项,并给他们加上样式,使下拉菜单变得更加美观,再加上js效果,设置其是否可见,用js写一个方法调用即可。
                 

上图,是我写的一个简单的下拉菜单条,最右边的为初始状态。

接下来让我们开始写一个类似上面的下拉菜单(没有写样式的)

 

首先,写出四个带菜单项的的菜单分别展开显示。

我列出第一个做例子,需要给每个菜单的菜单项的整体定义一个id,如下图的ul的id,这里为了方便,将id分别取为:0、1、2、3  (给菜单项加上链接是为了鼠标放上去更好的看到效果)

给span加上id=“00”,是为了显示菜单的变化,分别定义:00,01,02,03

(+:表示打开下拉,- :表示收起)

<div> 
<div >span id="00">+<span>一级菜单A</div>
<ul id="0" background="blue">
    <li><a href="#">一级菜单</a></li>
    <li><a href="#">一级菜单</a></li>
    <li><a href="#">一级菜单</a></li>
    <li><a href="#">一级菜单</a></li>
</ul></div>

 同样的方法写出余下三个(参照图片,代码略)

第二步,给小菜单项加上一个style 设置是否可见的样式

block  为可见; none  为不可见。在这里讲第一个设置为可见,其他的设置为不可见。

<ul style="display:block" id="0">

 第三步,编写js方法(核心)

//编写一个方法,用来改变菜单项的是否可见,来实现菜单的收起和下拉,并传入当前对象的id
function caiDan(id){
    //定义一个变量,用来保存span的id
    var num = '0'+id;
    //通过document.getElementById()这个方法得到当前对象
    var idd = document.getElementById(id);
    //判断当前对象的style.display  是否可见
    //如果不可见,则将其改为可见
	if(idd.style.display=="none"){
		idd.style.display="block";
		//将span中的“-”改为“+”,打开下拉菜单
		document.getElementById(num).innerHTML="+";
	}else{
		//否则将其设置为不可见
		idd.style.display="none";
		//将span中的“+”改为“-”,收起下拉菜单
		document.getElementById(num).innerHTML="-";
	}
	//利用for循环,将除了当前对象以外的都设为不可见 隐藏
	for(var i=0;i<4;i++){
		//除开当前对象
		if(i!=id){
		//设置为不可见,收起
		document.getElementById(i).style.display="none";
		document.getElementById('0'+i).innerHTML="-";
		}
	}
}

 

 第四步,写完方法,给菜单栏的每次菜单加上onclick方法(点击事件)加上caiDan(id)方法

<div  onclick="caiDan('0')"><span id="00">-</span>一级菜单A</div>

 最后,在浏览器中打开,点击即可看到效果

 

  • 大小: 3.8 KB
  • 大小: 3.8 KB
  • 大小: 2 KB
0
0
分享到:
评论
1 楼 百合不是茶 2014-12-07  
触发事件中传入(this,id);可以直接在if-else里面触发就显示,否者隐藏

相关推荐

    JavaScript实践——年月日下拉菜单

    NULL 博文链接:https://hrsvici412.iteye.com/blog/337605

    学习Bootstrap组件之下拉菜单

    .dropdown——设置父元素为下拉菜单组件,向下弹出子菜单; .dropup——设置父元素为下拉菜单组件,向上弹出子菜单; .dropdown-toggle——设置按钮为下拉菜单切换按钮; .dropdown-menu——设置ul元素为下拉菜单; ...

    ajax读取数据库内容实现二级联动下拉选择菜单示例

    代码如下: &lt;PRE class=javascript name=”code”&gt;&lt;/PRE&gt;&lt;PRE class=javascript name=”code”&gt;—————————————————————这是ajax(javascript)代码——————————————————————...

    CSS3制作Dropdown下拉菜单的方法

    正如标题所说,本文是教你如何巧用CSS3:target伪类制作Dropdown下拉菜单,原生HTML+CSS,无JavaScript。为了吸引各位往下看,先上实际例子,再进行剖析。 Duang~ 实际例子其实就是DeveMobile 主题的右上角那个按钮,...

    从入门到精通HTML5——PDF——网盘链接

     8.5 应用div制作下拉菜单导航条 176  8.6 小结 179  8.7 习题 179  第9章 编辑表单 181  教学录像:26分钟  9.1 使用表单标签——form 182  9.1.1 处理动作——action 182  9.1.2 表单名称——name 183 ...

    JavaScript详解(第2版)

     14.11.5 下拉菜单和提示框   14.12 应知应会   练习   第15章 W3C DOM与JavaScript   15.1 W3C DOM   15.2 理解DOM节点   15.3 节点   15.3.1 父节点和子节点   15.3.2 兄弟节点   ...

    ExtJS4中文教程2 开发笔记 chm

    JQuery特效——下拉菜单 JQuery系列教程之XPath选择符 JQuery系列教程之选择符 JQuery自动缩放页面中的图片 JQuery获取浏览器的高度和宽度 jquery获得和设置下拉框值的代码 基于jquery的跨域调用文件 ==============...

    ASP.NET开发实战1200例(第Ⅰ卷)第十二章

    实例293 动态生成CSS设置下拉式菜单实现 页面跳转 465 实例294 利用CSS样式设置解释型菜单 467 实例295 利用主题中CSS级联样式动态更换 网站皮肤 468 12.2 应用JavaScript脚本实现Web窗口 控制 470 实例296 利用...

    django-staggered-selects:Django 管理员的交错下拉菜单

    Django 交错选择概述这是一个小型库,可让您在 Django 模型管理页面中定义交错的下拉菜单。 例如,您可以拥有顶级“国家/地区”下拉列表和“州/省”下拉列表,并在用户每次更新“国家/地区”字段时将州/省限制为合理...

    精通JS脚本之ExtJS框架.part1.rar

    本书共分17章,分别介绍了JavaScript的对象编程、JavaScript浏览器对象模型和事件机制、ExtJS的核心类库和组件、ExtJS的事件处理方式、设计进度条、设计工具栏和菜单栏、设计面板、设计表格、设计表单、设计数据表、...

    精通JS脚本之ExtJS框架.part2.rar

    本书共分17章,分别介绍了JavaScript的对象编程、JavaScript浏览器对象模型和事件机制、ExtJS的核心类库和组件、ExtJS的事件处理方式、设计进度条、设计工具栏和菜单栏、设计面板、设计表格、设计表单、设计数据表、...

    北京中科信软AJAX培训

    实战技巧:级联下拉列表 使用responseXML处理返回的XML信息 实战技巧:获取元对象数据 实战技巧:处理列表数据 实战技巧:处理级联的数据 实战技巧:保存更新数据 在普通文本和XML文档之间权衡 何时返回普通文本 ...

    asp.net知识库

    SharpRewriter:javascript + xml技术利用#实现url重定向 采用XHTML和CSS设计可重用可换肤的WEB站点 asp.net的网址重定向方法的比较:面向搜索引擎友好 也谈 ASP.NET 1.1 中 QueryString 的安全获取写法 ASP.NET运行...

    EditPlus 2整理信箱的工具

    ③ 各种类似"$(FilePath)"的参数可以在文本框右侧的箭头下拉菜单中获取,具体含义如下 参数 描述 $(FilePath) 文件路径(文件全名,含目录和文件名) $(FileDir) 文件目录(不带文件名) $(FileName) 文件名(不带...

    Editplus 3[1].0

    ③ 各种类似"$(FilePath)"的参数可以在文本框右侧的箭头下拉菜单中获取,具体含义如下 参数 描述 $(FilePath) 文件路径(文件全名,含目录和文件名) $(FileDir) 文件目录(不带文件名) $(FileName) 文件名(不带...

    PHP开发实战1200例源码

    实例165 可输入字符的下拉菜单 197 实例166 设置下拉列表的默认值 198 实例167 设置下拉列表的样式 199 实例168 下拉列表打开窗口 200 实例169 Tab键在文本域中的体现 201 3.4 表单元素的动态操作 203 实例170 投票...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例176 跳转菜单实现页面跳转 213 实例177 上传图片预览 214 实例178 去掉下拉选项的边框 215 实例179 修改表单属性为弹出窗口 216 实例180 表单输入单元的文字设置 217 实例181 表单输入单元单击删除 218 实例182 ...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例176 跳转菜单实现页面跳转 213 实例177 上传图片预览 214 实例178 去掉下拉选项的边框 215 实例179 修改表单属性为弹出窗口 216 实例180 表单输入单元的文字设置 217 实例181 表单输入单元单击删除 218 实例182 ...

    Custom-Crafts

    应用截图: 后端回购链接: 链接到应用程序 - Heroku 部署: FeatureList 文档链接: 数据库架构链接: 代码片段: 前端购物车数量(增加/减少)实现: 前端侧边栏下拉菜单实现: 后端 GraphQL 实现: 如何安装、...

Global site tag (gtag.js) - Google Analytics