一个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 相关文章推荐
固定背景实现的背景滚动特效示例分享
May 19 Javascript
网站404页面3秒后跳到首页的实例代码
Aug 16 Javascript
js字符串转换成数字与数字转换成字符串的实现方法
Jan 08 Javascript
JavaScript 作用域链解析
Nov 13 Javascript
jQuery图片轮播滚动切换代码分享
Apr 20 Javascript
Angular.js实现获取验证码倒计时60秒按钮的简单方法
Oct 18 Javascript
jQuery第一次运行页面默认触发点击事件的实例
Jan 10 jQuery
vue slot 在子组件中显示父组件传递的模板
Mar 02 Javascript
JavaScript JMap类定义与使用方法示例
Jan 22 Javascript
实例讲解vue源码架构
Jan 24 Javascript
Json实现传值到后台代码实例
Jun 30 Javascript
基于JQuery和DWR实现异步数据传递
Oct 16 jQuery
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
一个颜色轮换的简单例子
2006/10/09 PHP
PHP数组实例总结与说明
2011/08/23 PHP
一个显示某段时间内每个月的方法 返回由这些月份组成的数组
2012/05/16 PHP
PHP加密函数 Javascript/Js 解密函数
2013/09/23 PHP
php中实现获取随机数组列表的自定义函数
2015/04/02 PHP
深入浅析PHP无限极分类的案例教程
2016/05/09 PHP
PHP通过bypass disable functions执行系统命令的方法汇总
2018/05/02 PHP
javascript入门·图片对象(无刷新变换图片)\滚动图像
2007/10/01 Javascript
执行iframe中的javascript方法
2008/10/07 Javascript
JavaScript之编码规范 推荐
2012/05/23 Javascript
js hover 定时器(实例代码)
2013/11/12 Javascript
javascript中setAttribute()函数使用方法及兼容性
2015/07/19 Javascript
JS实现的鼠标跟随代码(卡通手型点击效果)
2015/10/26 Javascript
JS 全屏和退出全屏详解及实例代码
2016/11/07 Javascript
JS正则子匹配实例分析
2016/12/22 Javascript
一次Webpack配置文件的分离实战记录
2018/11/30 Javascript
小程序如何使用分包加载的实现方法
2019/05/22 Javascript
详解为什么Vue中不要用index作为key(diff算法)
2020/04/04 Javascript
[01:06:26]全国守擂赛第二周 Team Coach vs DeMonsTer
2020/04/28 DOTA
使用python Django做网页
2013/11/04 Python
python选择排序算法的实现代码
2013/11/21 Python
python中的常量和变量代码详解
2018/07/25 Python
Python3 max()函数基础用法
2019/02/19 Python
Django框架模板的使用方法示例
2019/05/25 Python
Mac 使用python3的matplot画图不显示的解决
2019/11/23 Python
HTML5和以前HTML4的区别整理
2013/10/20 HTML / CSS
预备党员思想汇报
2014/01/08 职场文书
自我鉴定四大框架
2014/01/17 职场文书
社团文化节策划书
2014/02/01 职场文书
庆元旦迎新年广播稿
2014/02/18 职场文书
大学生党员批评与自我批评范文
2014/10/14 职场文书
2014七年级班主任工作总结
2014/12/05 职场文书
小学五一劳动节活动总结
2015/02/09 职场文书
优秀党员个人总结
2015/02/14 职场文书
2015年七一建党节活动方案
2015/05/05 职场文书
python turtle绘图命令及案例
2021/11/23 Python