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

停不下来?

为什么我的在odiv.offsetLeft==0的时候停不下来代码我也写上去了

正在回答

4 回答

将#div1中的position:relative;改为position:absolute;

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

gzw2zy

为什么要将它改为position:absolute;
2016-01-14 回复 有任何疑惑可以回复我~

建议将判断条件“oDiv.offsetLeft == 0”改为“oDiv.offsetLeft <= 0”,浏览器渲染页面是有间隔的,如果值改变为0的时间点和浏览器渲染的时间点完美错过了,那么设置的值就没有用了。改为小于等于0,就算错过了0的时间点,以后小于0的值也在判断范围内。

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

一直往右边走哪里错了?

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

听说名字太长不好念

没有定范围
2016-01-06 回复 有任何疑惑可以回复我~

<!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>无标题文档</title>

<style type="text/css">

body.div.span{

margin:0px;

padding:0px;

}

#div1{

width:200px;

height:200px;

background:red;

position:relative;

left:-200px;

top:0px;

}

#div1 span{

width:20px;

height:50px;

background:blue;

position:absolute;

left:200px;

top:75px;

}

</style>

<script>

window.onload=function(){

var oDiv=document.getElementById('div1');

oDiv.onmouseover=function(){

startmove();

}

oDiv.onmouseout=function(){

startmove1();

}

}

var i=null;

function startmove(){

clearInterval(i);

var oDiv=document.getElementById('div1');

i=setInterval(function(){

if(oDiv.offsetLeft==0){

clearInterval(i);

}

else

{

oDiv.style.left=oDiv.offsetLeft+1+'px';

}

},30)

}

function startmove1(){

clearInterval(i);

var oDiv=document.getElementById('div1');

i=setInterval(function(){

if(oDiv.offsetLeft==-200){

clearInterval(i);

}

else

{

oDiv.style.left=oDiv.offsetLeft-1+'px';

}

},30)

}

</script>

</head>


<body>

<div id="div1"><span id="share">分享</span></div>

</body>

</html>


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

举报

0/150
提交
取消

停不下来?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信