javascript我这个代码哪里错了为什么不能运行??
<html><head><styletype="text/css">#div1{width:200px;height:180px;background:red;posit...
<html>
<head>
<style type="text/css">
#div1{width:200px;height:180px;background:red;position:absolute;}
</style>
<script>
window.onload=function(){
var oDiv=document.getElementById("div1")
var oBtn=document.getElementById("btn1")
var oBtn2=document.getElementById("btn2")
var t=0;
oBtn.onclick=function(){
clearInterval(t);
t=setInterval(function(){
var speed=(300-oDiv.offsetLeft)/8;
if(speed>0)
{
speed=Math.ceil(speed);
}
else if(speed>0)
{
speed=Math.floor(speed);
}
else
{
clearInterval(t);
}
oDiv.style.left=oDiv.offsetLeft+speed+"px";
},55);
};
oBtn2.onclick=function(){
clearInterval(t);
t=setInterval(function(){
var speed=(0-oDiv.offsetLeft)/8;
if(speed>0)
{
speed=Math.ceil(speed);
}
else if(speed>0)
{
speed=Math.floor(speed);
}
else
{
clearInterval(t);
}
oDiv.style.left=oDiv.offsetLeft+speed+"px";
},55);
};
};
</script>
</head>
<body>
<input id="btn1" type="button" value="开始">
<input id="btn2" type="button" value="开始2">
<div id="div1"></div>
</body>
</html> 展开
<head>
<style type="text/css">
#div1{width:200px;height:180px;background:red;position:absolute;}
</style>
<script>
window.onload=function(){
var oDiv=document.getElementById("div1")
var oBtn=document.getElementById("btn1")
var oBtn2=document.getElementById("btn2")
var t=0;
oBtn.onclick=function(){
clearInterval(t);
t=setInterval(function(){
var speed=(300-oDiv.offsetLeft)/8;
if(speed>0)
{
speed=Math.ceil(speed);
}
else if(speed>0)
{
speed=Math.floor(speed);
}
else
{
clearInterval(t);
}
oDiv.style.left=oDiv.offsetLeft+speed+"px";
},55);
};
oBtn2.onclick=function(){
clearInterval(t);
t=setInterval(function(){
var speed=(0-oDiv.offsetLeft)/8;
if(speed>0)
{
speed=Math.ceil(speed);
}
else if(speed>0)
{
speed=Math.floor(speed);
}
else
{
clearInterval(t);
}
oDiv.style.left=oDiv.offsetLeft+speed+"px";
},55);
};
};
</script>
</head>
<body>
<input id="btn1" type="button" value="开始">
<input id="btn2" type="button" value="开始2">
<div id="div1"></div>
</body>
</html> 展开
3个回答
展开全部
oBtn2.onclick=function(){
clearInterval(t);
t=setInterval(function(){
var speed=(0-oDiv.offsetLeft)/8;
oDiv.style.left=oDiv.offsetLeft+speed+"px";
},55);
};
试试这样
clearInterval(t);
t=setInterval(function(){
var speed=(0-oDiv.offsetLeft)/8;
oDiv.style.left=oDiv.offsetLeft+speed+"px";
},55);
};
试试这样
更多追问追答
追问
你这个代码可以 为什么要这样改呢 为什么这里不用Math来取整呢 而且为什么不用关闭定时器了呢
追答
var speed=(0-oDiv.offsetLeft)/8;
这里取回的speed就是负数,你用if那些判断只执行最后一条else 结果就是oBtn2.onclick
点击后,就执行clearInterval(t);就是你看见的 点击开始2 就动一下,
试试这样
oBtn2.onclick=function(){
clearInterval(t);
t=setInterval(function(){
var speed=(0-oDiv.offsetLeft)/8;
if(speed-1)
{
speed = 0;
clearInterval(t);
}
oDiv.style.left=oDiv.offsetLeft+speed+"px";
},55);
};
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
唉,别人回答都不采纳,现在都没人回答你的问题了。造孽,造孽。
更多追问追答
追问
你在clearInterval(t);之前,压根就没有T,如何清除。大神这句话是什么意思 不懂
追答
刚才看错了。
其实你只用获取oDiv.style.left的值来做,没必要oDiv.offsetLeft。
如果oDiv.style.left等于0,则if(oDiv.style.left0) oDiv.style.left-=speed;反正思路就是这样。
而且,而且,你的if else实在看出你逻辑有问题,举个列子吧,5个水果,3个苹果,2个梨子,你先说,你拿了3个苹果,要去吃饭。然后你又对着剩下的2个梨子说,我在你们里面拿出苹果我就去扫地。因为你已经拿了3个苹果,明知道else后面不可能再有苹果了,你还非得去if判断下梨子里面还有没有苹果,如果有你要做啥,那岂不是谎话了?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询