Javascript制作伸缩的二级菜单
1.javascript方法
<style>
#navigation {
width: 200px;
font-family: Arial;
}
#navigation > ul {
list-style-type: none;
/* 不显示项目符号 */ margin: 0px;
padding: 0px;
}
#navigation > ul > li {
border-bottom: 1px solid #ED9F9F;
/* 添加下划线 */
}
#navigation > ul > li > a {
display: block;
/* 区块显示 */ padding: 5px 5px 5px 0.5em;
text-decoration: none;
border-left: 12px solid #711515;
/* 左边的粗红边 */ border-right: 1px solid #711515;
/* 右侧阴影 */
}
#navigation > ul > li > a:link,
#navigation > ul > li > a:visited {
background-color: #c11136;
color: #FFFFFF;
}
#navigation > ul > li > a:hover {
/* 鼠标经过时 */ background-color: #990020;
/* 改变背景色 */ color: #ffff00;
/* 改变文字颜色 */
}
/* 子菜单的CSS样式 */ #navigation ul li ul {
list-style-type: none;
margin: 0px;
padding: 0px 0px 0px 0px;
}
#navigation ul li ul li {
border-top: 1px solid #ED9F9F;
}
#navigation ul li ul li a {
display: block;
padding: 3px 3px 3px 0.5em;
text-decoration: none;
border-left: 28px solid #a71f1f;
border-right: 1px solid #711515;
}
#navigation ul li ul li a:link,
#navigation ul li ul li a:visited {
background-color: #e85070;
color: #FFFFFF;
}
#navigation ul li ul li a:hover {
background-color: #c2425d;
color: #ffff00;
}
#navigation ul li ul.myHide {
/* 隐藏子菜单 */ display: none;
}
#navigation ul li ul.myShow {
/* 显示子菜单 */ display: block;
}
</style> <script type="text/javascript">
function changemenu() {
//通过父元素li,找到兄弟元素ul
var bList = this.parentNode.getElementsByTagName("ul")[0];
//CSS交替更换来实现显、隐
if (bList.className == "myHide")
bList.className = "myShow";
else
bList.className = "myHide";
}
window.onload = function() {
var oList = document.getElementById("listUL");
var nList = oList.childNodes; //子元素
var sList;
for (var i = 0; i < nList.length; i++) {
//如果子元素为li,且这个li有子菜单ul
if (nList[i].tagName == "LI" && nList[i].getElementsByTagName("ul").length) {
slist = nList[i].firstChild; //找到超链接
slist.onclick = changemenu; //动态添加点击函数
}
}
}
</script> <div>
<div id="navigation">
<ul id="listUL">
<li><a href="#">Home</a>
</li>
<li><a href="#">News</a>
<ul class="myHide">
<li><a href="#">Lastest News</a>
</li>
<li><a href="#">All News</a>
</li>
</ul>
</li>
<li><a href="#">Sports</a>
<ul class="myHide">
<li><a href="#">Basketball</a>
</li>
<li><a href="#">Football</a>
</li>
<li><a href="#">Volleyball</a>
</li>
</ul>
</li>
<li><a href="#">Weather</a>
<ul class="myHide">
<li><a href="#">Today's Weather</a>
</li>
<li><a href="#">Forecast</a>
</li>
</ul>
</li>
<li><a href="#">Contact Me</a>
</li>
</ul>
</div> </div>
2.附jQuery方法
<script type="text/javascript">
$(function() {
//找到所有li标记中包含的ul标记
//然后找到它的前一个标记(即<a>),并添加click()事件
$("li").find("ul").prev().click(function() {
//点击<a>时让它后面的兄弟(即<ul>)切换CSS样式
$(this).next().toggleClass("myHide");
});
});
</script>
3.附jQuery toggle()方法
<script language="javascript">
$(function(){
$("li").find("ul").prev().click(function(){
$(this).next().toggle();
});
$("li:has(ul)").find("ul").hide();
});
</script>
Javascript制作伸缩的二级菜单的更多相关文章
- jQuery - 制作点击显示二级菜单效果
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- javascript 特效实现(3)—— 鼠标滑过显示二级菜单效果
1. 关键代码:使用 switch 或 if 判断语句,改变对应的二级菜单显示方式为 block 或 none function selectTabMenu(i){ switch(i){ case 7 ...
- 个人练习:使用HTML+CSS制作二级菜单
最近一直在学习HTML+CSS,刚看完如果制作下拉菜单部分,就想着做一个练练手. 先上成品图: 就是上面这个效果,横向菜单选项能点击,鼠标放在上面也能展开二级菜单,二级菜单也能点击,点击后就会在底下的 ...
- CSS制作二级菜单时,二级菜单与一级菜单不对齐
效果如图: 部分代码如图: <li><a href="#" target="_blank">关于我们</a> <ul& ...
- html+css二级菜单制作!
二级菜单!!<!DOCTYPE html<html lang="e<head> <meta charset="UTF-8"> < ...
- JavaScript(jquery)实现二级菜单联动
为什么写这篇随笔? 二级菜单的联动一直是我心中一块石头,犹记得大一的时候只会用一点的Dreamweaver,当时做二级菜单难受啊,啥都不会,网上找了些资料,也看不懂别人的代码更别说用起来了 前些日子. ...
- JavaScript处理数据完成左侧二级菜单的搭建
我们在项目中应用的后台管理框架基本上都是大同小异,左侧是一个二级菜单,点击选中的菜单,右侧对应的页面展示.我把前端页面封装数据的过程整理了一下,虽然不一定适合所有的管理页面,仅作为案例来参考,只是希望 ...
- bootstrap学习笔记之为导航条添加标题、二级菜单及状态 http://www.imooc.com/code/3120
为导航条添加标题.二级菜单及状态 加入导航条标题 在Web页面制作中,常常在菜单前面都会有一个标题(文字字号比其它文字稍大一些),其实在Bootstrap框架也为大家做了这方面考虑,其通过" ...
- Jquery垂直下拉二级菜单
自己做了一个基于Jquery 的垂直下拉二级菜单功能,直接看图: Html的代码如下: <!DOCTYPE html> <html> <head> <meta ...
随机推荐
- 广告小程序后端开发(2.Models设计)
1.users的数据表设计: 1.重建用户表: 1.在settings中配置: AUTH_USER_MODEL='users.UserProfile' 2.apps/users/models.py中建 ...
- PVS BSP
作者:韦易笑链接:https://www.zhihu.com/question/38060533/answer/84432973来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...
- jQuery阻止默认行为
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF- ...
- [转贴]VC编译器版本号_MSC_VER and _MSC_FULL_VER
Visual Studio version and discrimination macros Abbreviation Product name [Visual Studio version] †1 ...
- map集合根据value找key,默认取第一个key
private static String getKey(Map<String,String> map,String value){ String key=""; fo ...
- 生产者消费者模式-Java实现
感知阶段 随着软件业的发展,互联网用户的日渐增多,并发这门艺术的兴起似乎是那么合情合理.每日PV十多亿的淘宝,处理并发的手段可谓是业界一流.用户访问淘宝首页的平均等待时间只有区区几秒,但是服务器所处理 ...
- springboot 搭建 简单 web项目 【springboot + freemark模板 + yml 配置文件 + 热修复 + 测试用例】附源码
项目 地址: https://gitee.com/sanmubird/springboot-simpleweb.git 项目介绍: 本项目主要有一下内容: 1: springboot yml 配置 ...
- c++和java在桌面应用软件开发的区别
之前一直用c/c++比较多.最近做的事情用java写了个小程序.发现java的工具包很多而且好找,c++的桌面应用工具包就不好找了. java在项目的buildpath里添加外部jar包即可,c++需 ...
- springAOP实现方法运行时间统计
aop的before和after,寻思分别在两个方法里获得当前时间,最后一减就可以了. 因此,今天就探讨了一下这个问题,和大家分享一下. 创建maven工程,引入spring的依赖包,配置好appli ...
- oracle nvl()函数
oracle的nvl()函数作用是当第一个值不为null时,返回第一个值,否则返回第二个值. 当第一个值为一个运算表达式时,那么第二个的值被限定为只能是NUMBER类型或者能隐式转换为NUMBER类型 ...