请帮我看看,谢谢

来源:2-1 JS速度动画

KARLA

2016-05-05 15:02

<!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>5-5</title>

<style type="text/css">

* {

margin:0;

padding:0;

}

#div1 {

background:#C03;

width:200px;

height:200px;

position:relative;

left:-200px;

top:0;

}

#div1 span {

background:#00C;

width:20px;

height:50px;

position:absolute;

top:75px;

left:200px;

color:#333;

}

</style>

<script>

window.onload=function(){

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

oDiv.onmouseover=function(){

startmove();

}

}

var timer;

function startmove(){

timer.setInterval(function(){

if(oDiv.offsetLeft==0){

clearInterval(timer);

}

else{

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

oDiv.style.left=oDiv.offsetLeft+10+"px";

}

},30)

}

</script>

</head>

<body>

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

</body>

</html>


写回答 关注

1回答

  • qq_天空中的纸飞机_0
    2016-05-05 19:48:28

    <!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>5-5</title>

    <style type="text/css">

    * {

    margin:0;

    padding:0;

    }

    #div1 {

    background:#C03;

    width:200px;

    height:200px;

    position:relative;

    left:-200px;

    top:0;

    }

    #div1 span {

    background:#00C;

    width:20px;

    height:50px;

    position:absolute;

    top:75px;

    left:200px;

    color:#333;

    }

    </style>

    <script>

    window.onload=function(){

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

    oDiv.onmouseover=function(){

    startmove();

    }

    }

    var timer=null;

    function startmove(){

    //加上这句,不然oDiv.offsetLeft没定义

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

    clearInterval(timer);

    //timer是一个变量,是用来赋值的,不能用点操作符

    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 class="share">分享</span></div>

    </body>

    </html>

    这样就可以实现了

    _莫忘初衷_ 回复KARLA

    楼上说的是对的 ,还有外加一点就是把你else里的var oDiv=document.getElementById('div1');去掉,加到function开始的地方 你自己原先那样if判断语句读取不到oDiv.offsetLeft

    2016-05-23 21:01:01

    共 2 条回复 >

JS动画效果

通过本课程JS动画的学习,从简单动画开始,逐步深入各种动画框架封装

113925 学习 · 1443 问题

查看课程

相似问题