最近在做网站,网上找了个滑动菜单代码,css+js实现的:http://www.codefans.net/jscss/code/880.shtml
现在碰到个比较大的问题,现在鼠标一移走菜单就自动缩回了,最好在鼠标点击后伸出的菜单自动停顿,然后自动获取当前位置的菜单值,包括之前几层菜单的值。不知道该怎么实现啊?或者有其它能实现类似功能的js代码也行啊,谢谢了!
现在碰到个比较大的问题,现在鼠标一移走菜单就自动缩回了,最好在鼠标点击后伸出的菜单自动停顿,然后自动获取当前位置的菜单值,包括之前几层菜单的值。不知道该怎么实现啊?或者有其它能实现类似功能的js代码也行啊,谢谢了!
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>CSS滑动菜单</title>
<style type="text/css">
body {
margin: 0;
padding: 30px;
background: #FFF;
color: #555;
}
h1 {
font: bold 16px Arial, Helvetica, sans-serif;
}
p {
font: 11px Arial, Helvetica, sans-serif;
}
a {
color: #900;
text-decoration: none;
}
a:hover {
background: #900;
color: #FFF;
} ul#navmenu,
ul#navmenu li,
ul#navmenu ul {
margin: 0;
border: 0 none;
padding: 0;
width: 160px; /*For KHTML*/
list-style: none;
}
ul#navmenu li {
display: block !important;
display: inline;
position: relative;
} ul#navmenu a {
border: 1px solid #FFF;
border-right-color: #CCC;
border-bottom-color: #CCC;
padding: 0 6px;
display: block;
background: #EEE;
color: #666;
font: bold 10px/22px Verdana, Arial, Helvetica, sans-serif;
text-decoration: none;
height: auto !important;
height: 1%; /*For IE*/
} ul#navmenu a:hover,
ul#navmenu li:hover a,
ul#navmenu li.iehover a {
background: #CCC;
color: #FFF;
} ul#navmenu li:hover li a,
ul#navmenu li.iehover li a {
background: #EEE;
color: #666;
} ul#navmenu li:hover li a:hover,
ul#navmenu li:hover li:hover a,
ul#navmenu li.iehover li a:hover,
ul#navmenu li.iehover li.iehover a {
background: #CCC;
color: #FFF;
} ul#navmenu li:hover li:hover li a,
ul#navmenu li.iehover li.iehover li a {
background: #EEE;
color: #666;
}
/* 3rd Menu Hover Persistence */
ul#navmenu li:hover li:hover li a:hover,
ul#navmenu li:hover li:hover li:hover a,
ul#navmenu li.iehover li.iehover li a:hover,
ul#navmenu li.iehover li.iehover li.iehover a {
background: #CCC;
color: #FFF;
} ul#navmenu li:hover li:hover li:hover li a,
ul#navmenu li.iehover li.iehover li.iehover li a {
background: #EEE;
color: #666;
}
ul#navmenu li:hover li:hover li:hover li a:hover,
ul#navmenu li.iehover li.iehover li.iehover li a:hover {
background: #CCC;
color: #FFF;
}
ul#navmenu ul,
ul#navmenu ul ul,
ul#navmenu ul ul ul {
display: none;
position: absolute;
top: 0;
left: 160px;
} ul#navmenu li:hover ul ul,
ul#navmenu li:hover ul ul ul,
ul#navmenu li.iehover ul ul,
ul#navmenu li.iehover ul ul ul {
display: none;
}
ul#navmenu li:hover ul,
ul#navmenu ul li:hover ul,
ul#navmenu ul ul li:hover ul,
ul#navmenu li.iehover ul,
ul#navmenu ul li.iehover ul,
ul#navmenu ul ul li.iehover ul {
display: block;
}
</style>
<script type="text/javascript">
<!--
navHover = function() {
var lis = document.getElementById("navmenu").getElementsByTagName("LI");
for (var i=0; i<lis.length; i++) {
lis[i].onmouseover=function() {
this.className+=" iehover";
}
lis[i].onmouseout=function() {
this.className=this.className.replace(new RegExp(" iehover\\b"), "");
}
}
}
if (window.attachEvent) window.attachEvent("onload", navHover);
-->
</script>
</head>
<body>
<h1>CSS Menu - Vertical</h1>
<hr />
<ul id="navmenu">
<li><a href="/">My Blog</a></li>
<li><a href="#">Work +</a>
<ul>
<li><a href="#">Websites +</a>
<ul>
<li><a href="#">jQuery</a></li>
<li><a href="#">ajax</a></li>
<li><a href="#">extjs</a></li>
</ul>
</li>
<li><a href="#">Links</a></li>
<li><a href="#">Contact</a></li>
</ul>
</li>
<li><a href="#">Learn +</a>
<ul>
<li><a href="#">CSS +</a>
<ul>
<li><a href="#">Html</a></li>
<li><a href="#">spriteNav</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#">Messages</a></li>
</ul>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>CSS 滑动菜单</title>
<style type="text/css">
body {
margin: 0;
padding: 30px;
background: #FFF;
color: #555;
}
h1 {
font: bold 16px Arial, Helvetica, sans-serif;
}
p {
font: 11px Arial, Helvetica, sans-serif;
}
a {
color: #900;
text-decoration: none;
}
a:hover {
background: #900;
color: #FFF;
} ul#navmenu,
ul#navmenu li,
ul#navmenu ul {
margin: 0;
border: 0 none;
padding: 0;
width: 160px; /*For KHTML*/
list-style: none;
}
ul#navmenu li {
display: block !important;
display: inline;
position: relative;
} ul#navmenu a {
border: 1px solid #FFF;
border-right-color: #CCC;
border-bottom-color: #CCC;
padding: 0 6px;
display: block;
background: #EEE;
color: #666;
font: bold 10px/22px Verdana, Arial, Helvetica, sans-serif;
text-decoration: none;
height: auto !important;
height: 1%; /*For IE*/
} ul#navmenu a:hover,
ul#navmenu li:hover a,
ul#navmenu li.iehover a {
background: #CCC;
color: #FFF;
} ul#navmenu li:hover li a,
ul#navmenu li.iehover li a {
background: #EEE;
color: #666;
} ul#navmenu li:hover li a:hover,
ul#navmenu li:hover li:hover a,
ul#navmenu li.iehover li a:hover,
ul#navmenu li.iehover li.iehover a {
background: #CCC;
color: #FFF;
} ul#navmenu li:hover li:hover li a,
ul#navmenu li.iehover li.iehover li a {
background: #EEE;
color: #666;
}
/* 3rd Menu Hover Persistence */
ul#navmenu li:hover li:hover li a:hover,
ul#navmenu li:hover li:hover li:hover a,
ul#navmenu li.iehover li.iehover li a:hover,
ul#navmenu li.iehover li.iehover li.iehover a {
background: #CCC;
color: #FFF;
} ul#navmenu li:hover li:hover li:hover li a,
ul#navmenu li.iehover li.iehover li.iehover li a {
background: #EEE;
color: #666;
}
ul#navmenu li:hover li:hover li:hover li a:hover,
ul#navmenu li.iehover li.iehover li.iehover li a:hover {
background: #CCC;
color: #FFF;
}
ul#navmenu ul,
ul#navmenu ul ul,
ul#navmenu ul ul ul {
display: none;
position: absolute;
top: 0;
left: 160px;
} ul#navmenu li:hover ul ul,
ul#navmenu li:hover ul ul ul,
ul#navmenu li.iehover ul ul,
ul#navmenu li.iehover ul ul ul {
display: none;
}
ul#navmenu li:hover ul,
ul#navmenu ul li:hover ul,
ul#navmenu ul ul li:hover ul,
ul#navmenu li.iehover ul,
ul#navmenu ul li.iehover ul,
ul#navmenu ul ul li.iehover ul {
display: block;
}
</style>
<script type="text/javascript">
<!--
var str = "",clickMark=false;
navHover = function() {
var lis = document.getElementById("navmenu").getElementsByTagName("LI");
for (var i=0; i<lis.length; i++) {
lis[i].onmouseover=function() {
this.className+=" iehover";
}
lis[i].onclick=function() {
clickMark = true;
window.event.cancelBubble = true;
str = getParentNodeValue(this).join(",");
}
lis[i].onmouseout=function() {
if(!clickMark){
this.className=this.className.replace(new RegExp(" iehover\\b"), "");
}else{
this.className=this.className.replace(new RegExp(" iehover\\b"), "") + " iehover";
clickMark = false;
}
}
}
}
if (window.attachEvent) window.attachEvent("onload", navHover); function getParentNodeValue(node){
var menuValue=[];
while(node.id != "navmenu"){
if(node.tagName == "LI"){
menuValue.push(node.firstChild.innerText); //FF 用innerContent
}
node = node.parentNode;
}
return menuValue;
}function show(){
alert(str);
}
-->
</script>
</head>
<body>
<h1>CSS Menu - Vertical</h1>
<hr />
<ul id="navmenu">
<li><a href="/">My Blog</a></li>
<li><a href="#">Work +</a>
<ul>
<li><a href="#">Websites +</a>
<ul>
<li><a href="#">jQuery</a></li>
<li><a href="#">ajax</a></li>
<li><a href="#">extjs</a></li>
</ul>
</li>
<li><a href="#">Links</a></li>
<li><a href="#">Contact</a></li>
</ul>
</li>
<li><a href="#">Learn +</a>
<ul>
<li><a href="#">CSS +</a>
<ul>
<li><a href="#">Html</a></li>
<li><a href="#">spriteNav</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#">Messages</a></li>
</ul>
<input type="button" onclick="show();" value="click" />
</body>
</html>不知道是不是你要的效果,感觉很别扭,你点击后面的li时,显示这个li,那我点击其他的li项时岂不是会被先前显示的菜单覆盖,可能是你css布局不到位吧,仅供参考