我鼠标一移开导航栏,下拉菜单就没了,鼠标根本无法移到菜单上,怎么办呀???求大神,最好是简单一点的方法
回复讨论(解决方案)
给 下拉菜单隐藏 这块加个定时器,指定多少时间后才隐藏。
然后 当鼠标移到下拉菜单 的时候,清空定时器。
以上是思路,具体的代码就自己写写吧,还是挺简单的。
我鼠标一移开导航栏,下拉菜单就没了,鼠标根本无法移到菜单上,怎么办呀???求大神,最好是简单一点的方法
我写的那个不知道怎么回事,鼠标移动到菜单那个ul里它竟然显示是onmouseout事件??这是怎么回事??
1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" ><html xmlns= "http://www.w3.org/1999/xhtml" xml:lang= "en" ><head> <meta http-equiv= "Content-Type" content= "text/html;charset=UTF-8" /> <title>延迟提示框</title> <style type= "text/css" > #div1{width:200px;height:30px;background:red;} #div2{width:150px;height:20px;background:gray;display:none;margin:10px;} </style></head><body> <div id= "div1" ></div> <div id= "div2" ></div></body></html><script type= "text/javascript" >window.onload = function (){ var oDiv1 = document.getElementById( 'div1' ); var oDiv2 = document.getElementById( 'div2' ); var timer = null; oDiv1.onmouseover = oDiv2.onmouseover = function (){ oDiv2.style.display = 'block' ; clearTimeout(timer); }; oDiv1.onmouseout = oDiv2.onmouseout = function (){ timer = setTimeout( function (){ oDiv2.style.display = 'none' ; }, 500); };}</script>
|
Nach dem Login kopieren
参考下。
XML/HTML code?123456789101112131415161718192021222324252627282930313233 我那个他不是时间不够到不了菜单,而是到菜单上他就消失,不到菜单上他到不消失
那个onmouseout事件对不上
那么有可能就是菜单上有 onmouseover 事件。
有具体的代码么?
下拉菜单 必须被包裹在 主菜单内
1 | <ul> <li><a>MENU</a> <ul> <li><a>LIST</a></li> </ul> </li></ul>
|
Nach dem Login kopieren
鼠标移到空白的地方了。
移动不到就消失是因为超链接文本和子导航之间存在空白,移动的时候先经过了空白的区域,如果熟悉使用chrome浏览器的审查元素功能,你可以查看一下。解决的办法是给主导航超链接的文本设置一个padding值例如设置#nav a {padding:10px 20px;},margin值为0
把下拉菜单放入对应的导航栏标签里面试下
用JQUERY 的hide就应该没有问题了
给下拉的菜单页写个onmouseover事件就好了
谢谢各位的热心回答。我的问题已解决