为了账号安全,请及时绑定邮箱和手机立即绑定

offsetHeight报错,只有重复触发时下拉菜单才一点点出现

<!DOCTYPE html >

<html>

<head>

<meta charset="UTF-8">

<title>JS实现动画菜单</title>

<style type="text/css">

.nav{

list-style-type:none;

font-size:12px;

font-weight:bold;

}

.navli{

float:left;

position:relative;

}

.navli a{

text-decoration:none;

display:block;

width:80px;

background:#eee;

line-height:20px;

color:#000;

text-align:center;

}

.navli a:hover{

color:#FFF;

background:#F00;

}

.navli ul{

list-style-type:none;

padding:0;

position:absolute;;

display:none;

height:0px;

overflow:hidden;

}

</style>

<script type="text/javascript" >

window.onload= function(){

var navli=document.getElementsByTagName("li");

for(i=0;i<navli.length;i++){

navli[i].onmouseover=function() {

var ulmenu=this.getElementsByTagName("ul")[0];

if(ulmenu !=undefined){

ulmenu.style.display="block";

Addh(ulmenu.id);

}

};

navli[i].onmouseout=function(){

//空

};

}

}

function Addh(id){

var ul=document.getElementById(id);

var h=ul.offsetHeight;

h =h+1;

if(h<=60){

ul.style.height=h+"px";

setTimeout("Addh(' " +id+" ')",10);

}

else{

return;

}

}

</script>

</head>

<body>

<ul>

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

<li><a href="#" >课程大厅+</a>

<ul id="lesson">

<li><a href="#" >前端开发</a> </li>

<li><a href="#" >手机开发</a></li>

<li><a href="#" >后端开发</a></li>

</ul>

</li>

<li><a href="#" >学习中心</a></li>

<li><a href="#" >关于我们</a></li>

</ul>

</body>

</html>

http://img1.sycdn.imooc.com//56ae17be0001b87505010079.jpg

正在回答

2 回答

遇到同样的问题


0 回复 有任何疑惑可以回复我~
#1

u蓝天白云u 提问者

非常感谢!
2016-02-02 回复 有任何疑惑可以回复我~

我已经解决我的问题了,是setTimeout()字符串拼接有问题,我试了试你的代码,发现你也是这里有问题。

你在拼接的时候加了空格,你赋值我下面的代码,然后就ok了

setTimeout("Addh('"+id+"')",10);

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
形形色色的下拉菜单
  • 参与学习       106929    人
  • 解答问题       563    个

本教程从易到难,循循渐进,运用不同技术实现动态下拉菜单

进入课程

offsetHeight报错,只有重复触发时下拉菜单才一点点出现

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号