马小萍
2016-08-12 21: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>
body,div,span{
margin:0;
padding:0;
}
#div{
width:200px;
height:200px;
background:red;
position:relative;
left:-200px;
top:0;
}
#share{
width:20px;
height:50px;
background:blue;
position:absolute;
left:200px;
top:75px;
}
</style>
<script>
window.onload=function(){
var oDiv=document.getElementById('div');
oDiv.onmouseover=function(){
startMove();
}
oDiv.onmouseout=function(){
startMove1();
}
}
var timer=null;
function startMove(){
clearInterval(timer);
var oDiv=document.getElementById('div');
setInterval(function(){
if(oDiv.offsetLeft==0){
clearInterval(timer);
}else{
oDiv.style.left=oDiv.offsetLeft+10+'px';
}
},30);
}
function startMove1(){
clearInterval(timer);
var oDiv=document.getElementById('div');
setInterval(function(){
if(oDiv.offsetLeft==-200){
clearInterval(timer);
}else{
oDiv.style.left=oDiv.offsetLeft-10+'px';
}
},30);
}
</script>
</head>
<body>
<div id="div"><span id="share">分享</span></div>
</body>
</html>
因为你的timer是空的呀~根本没有给它赋值,就像楼上Peakid说的 timer = setInterval(function(){}
要把setInterval(function(){}这个定时器赋给timer
对startMove和startMove这两个函数的定义中,缺少了获取oDid的步骤
var oDiv = document.getElementById('oDiv');
JS动画效果
113925 学习 · 1443 问题
相似问题