一个css与js结合的下拉菜单支持主流浏览器


Posted in Javascript onOctober 08, 2014

首先声明:

本人虽然在web前端岗位干了好多年,但无奈岗位对技术要求不高。html,css用的比较多,JavaScript自己原创的很少,基本都是copy修改,所以自己真正动手写时,发现基础很不牢固,边学习边实践,收获很大。

效果图:

一个css与js结合的下拉菜单支持主流浏览器

不废话了,贴码了

1、css代码

a:link{color:white;text-decoration:none;} 

a:visited{color:white;text-decorative:none;} 

a:hover{color:white;text-decorative:none;} 

a:active{color:white;text-decorative:none;} 

li{float:left;display:inline;background-color:#003366;width:120px;text-align:center;margin:2px;padding:10px 0 5px 0;position:relative;} 

.limouseover{background-color:#0033ff;color:red;} 

.limouseout{background-color:#003366;color:black;} 

li ul{display:none;width:120px;position:absolute;left:0;top:30px;} 

li ul li{margin:0px auto;border-top:1px solid #006699;}

2、JavaScript代码

<script language=javascript> 

function menu(menu1){ 

//鼠标移入移出classname切换和子菜单隐藏、显示切换。 

if (document.getElementById(menu1)){ 

var menu_ul=document.getElementById(menu1); 

if (menu_ul.getElementsByTagName("li").length){ 

var menu_li=menu_ul.getElementsByTagName("li"); 

for (i in menu_li){ 

menu_li[i].onmouseover=function(){this.className="limouseover";if (this.getElementsByTagName("ul").length){this.getElementsByTagName("ul")[0].style.display="block";}} 

menu_li[i].onmouseout=function(){this.className="limouseout";if (this.getElementsByTagName("ul").length){this.getElementsByTagName("ul")[0].style.display="none";}} 

} 

} 

} 

} 
</script>

3、html代码

<ul id=menu1> 

<li><a href="">首页</a></li> 

<li><a href="">菜单1菜单1</a> 

<ul> 

<li><a href="">子菜单1子菜单1子菜单1子菜单1</a></li> 

<li><a href="">子菜单2</a></li> 

</ul> 

</li> 

<li><a href="">菜单2</a> 

<ul> 

<li><a href="">子菜单1子菜单1子菜单1子菜单1</a></li> 

<li><a href="">子菜单2</a></li> 

</ul> 

</li> 

</ul>

<script>var menu1=new menu("menu1");</script>

说明:

1、考虑到ul和li页面用的比较多,可以在css前加入#menu1,以对菜单样式进行范围限制。

2、js主要是对鼠标移入和移除事件进行了侦听,对应切换到limouseover和limouseout样式;同时对子菜单的display属性进行更改,达到显示隐藏的功能。

3、同一个页面可以重复调用,不冲突,html代码中的JavaScript代码是调用实例,前面的menu1为任意变量名,括号内的menu1为html页面中的id。

本例的缺点:

1、菜单li的mouseover、mouseout和子菜单li的样式一样,即同一个颜色和字体,没有实现单独设置。

2、由于要兼容Ie6和ie7,所以其中采用position:absolute的同时,增加了left和top属性,top要根据菜单li的整体高度设定。

Javascript 相关文章推荐
JavaScript Cookie 直接浏览网站分网址
Dec 08 Javascript
js日历功能对象
Jan 12 Javascript
js用Date对象处理时间实现思路及代码
Jan 31 Javascript
jQuery获取iframe的document对象的方法
Oct 10 Javascript
JavaScript获取页面上被选中文字的方法技巧
Mar 13 Javascript
jQuery实现的网页右下角tab样式在线客服效果代码
Oct 23 Javascript
Bootstrap编写导航栏和登陆框
May 30 Javascript
基于JavaScript实现的插入排序算法分析
Apr 14 Javascript
详解vue中点击空白处隐藏div的实现(用指令实现)
Apr 19 Javascript
JS数组去重的6种方法完整实例
Dec 08 Javascript
ionic+html5+API实现双击返回键退出应用
Sep 17 Javascript
javascript 高级语法之继承的基本使用方法示例
Nov 11 Javascript
Javascript获取当前日期的农历日期代码
Oct 08 #Javascript
javascript中通过arguments参数伪装方法重载
Oct 08 #Javascript
利用原生JavaScript获取元素样式只是获取而已
Oct 08 #Javascript
javascript学习笔记(八)正则表达式
Oct 08 #Javascript
javascript学习笔记(七)Ajax和Http状态码
Oct 08 #Javascript
javascript学习笔记(六)数据类型和JSON格式
Oct 08 #Javascript
javascript学习笔记(五)原型和原型链详解
Oct 08 #Javascript
You might like
PHP+DBM的同学录程序(3)
2006/10/09 PHP
php 获取当前访问的url文件名的方法小结
2010/02/08 PHP
PHP 图片上传实现代码 带详细注释
2010/04/29 PHP
php生出随机字符串
2017/07/06 PHP
PHP实现基于回溯法求解迷宫问题的方法详解
2017/08/17 PHP
laravel 5.5 关闭token的3种实现方式
2019/10/24 PHP
用Javascript做flash做的事..才完成的一个类.Auntion Action var 0.1
2007/02/23 Javascript
jquery prop的使用介绍及与attr的区别
2013/12/19 Javascript
Jquery Ajax解析XML数据(同步及异步调用)简单实例
2014/02/12 Javascript
js离开或刷新页面检测(且兼容FF,IE,Chrome)
2014/03/05 Javascript
轻松搞定js表单验证
2016/10/13 Javascript
AngularJS指令与控制器之间的交互功能示例
2016/12/14 Javascript
在一个页面重复使用一个js函数的方法详解
2016/12/26 Javascript
关于HTTP传输中gzip压缩的秘密探索分析
2018/01/12 Javascript
如何使用less实现随机下雪动画详解
2019/01/02 Javascript
AJAX在JQuery中的应用详解
2019/01/30 jQuery
微信小程序可滑动月日历组件使用详解
2019/10/21 Javascript
python访问纯真IP数据库的代码
2011/05/19 Python
python 多线程实现检测服务器在线情况
2015/11/25 Python
Python数据类型详解(一)字符串
2016/05/08 Python
python实现从文件中读取数据并绘制成 x y 轴图形的方法
2018/10/14 Python
浅谈多卡服务器下隐藏部分 GPU 和 TensorFlow 的显存使用设置
2020/06/30 Python
详解Java中一维、二维数组在内存中的结构
2021/02/11 Python
Css3圆角边框制作代码
2015/11/18 HTML / CSS
MIRTA官网:手工包,100%意大利制造
2020/02/11 全球购物
SHEIN美国:购买时髦的女性服装
2020/12/02 全球购物
书法培训心得体会
2014/01/05 职场文书
委托公证书范本
2014/04/03 职场文书
创业融资计划书
2014/04/25 职场文书
学术诚信承诺书
2014/05/26 职场文书
清明节演讲稿
2014/05/27 职场文书
单位婚育证明范本
2014/11/21 职场文书
2014个人年终工作总结范文
2014/12/15 职场文书
2016教师政治学习心得体会
2016/01/23 职场文书
解除租赁合同协议书
2016/03/21 职场文书
python可视化分析绘制带趋势线的散点图和边缘直方图
2022/06/25 Python