weibo_殇雨916_0
2015-11-28 08:50
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<meta name="Generator" content="EditPlus®">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
<title>Document</title>
<style type="text/css">
#div1{width:200px;height:150px;left:-200px;position:relative;background-color:red;}
#share{width:50px;height:100px;position:absolute;background-color:blue;left:200px;}
</style>
<script>
window.onload=function(){
var oDiv=document.getElementById("div1");
oDiv.onmouseover=function(){
startMove();
}
}
var timer=null;
function startMove(){
var oDiv=document.getElementById("div1");
timer=setInterval(function(){
if(oDiv.offsetLeft==0)
{clearInterval(timer);}
else
{oDiv.style.left=oDiv.offsetLeft+10+'px';}
},30)
}
</script>
</head>
<body>
<div id="div1">
<span id="share">分享</span>
</div>
</body>
</html>
<!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>
div{width:200px;
height:200px;
background:red;
position:relative;
left:-200px;
top:0;
}
#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();
}
var timer=null; }
function startMove(){
var oDiv=document.getElementById("div1");
if(oDiv.offsetLeft==500){cleaInterval(timer)}
else{
setInterval(function(){oDiv.style.left= oDiv.offsetLeft+1+"px";},300)
}
}
</script>
</head>
<body>
<div id="div1"><span id="share">分享</span></div>
</body>
</html>
本人菜鸟一枚,只是发表个人见解,大神勿喷
这句代码有误,从你鼠标触发动画效果的那一刻起,oDiv.offsetLeft就不可能等于0,所以就会一直执行else里边的语句。你不妨把语句里的数值改为100、500、800……,看看具体效果,你就明白了
JS动画效果
113925 学习 · 1443 问题
相似问题