javascript的clearTimeout问题

下面的程序为什么在firefox,谷歌中无限循环我的思路是这样的:打开页面,5秒后页面中的一幅图片的高度会慢慢缩小,直到为0;然后更换为另一幅图片<divid="top_... 下面的程序为什么在firefox,谷歌中无限循环

我的思路是这样的:
打开页面,5秒后页面中的一幅图片的高度会慢慢缩小,直到为0;
然后更换为另一幅图片

<div id="top_box"> <img src="image/top1.jpg" id="logopic" width="960px"></div>

<script>
window.onload=function(){
setTimeout(switchSmall, 5000);
};

var timer=null;

function switchSmall(){
var myImg=document.getElementById('logopic');

var h=myImg.offsetHeight;
if(h>0){
h-=10;
myImg.height=h;//alert(h);
timer=setTimeout(switchSmall, 100);

}else{
clearTimeout(timer);
myImg.src="image/top2.jpg";
myImg.height=100;
}

}
展开
 我来答
查幻迩05
2013-04-28 · 超过11用户采纳过TA的回答
知道答主
回答量:32
采纳率:0%
帮助的人:37.3万
展开全部
无限循环的原因是你取 offsetHeight的值, 而设置的是height, 所以你的 if(h>0) 总是true

其它没什么问题,
百度网友a19d193
2013-04-28 · TA获得超过3446个赞
知道大有可为答主
回答量:1464
采纳率:100%
帮助的人:1448万
展开全部
setTimeout是不需要clearTimeout的,我想你是用错函数了吧,应该用setInterval代替setTimeout
setTimeout是一次性的,setInterval是间隔固定的时间执行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pic151
2013-04-28
知道答主
回答量:6
采纳率:0%
帮助的人:8921
展开全部
把js剪切到</head>标签之前,并加上</script>,然后试试在火狐下,我这边显示没问题,效果和你想要的符合
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式