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

为什么同样设置的速度是10px,移进移出的速度为什么不一样?

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

    <title>速度动画!!!测试</title>

    <style>

        #div1 {

           

            background-color: red;

            width: 200px;

            height: 200px;

            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();

            }

            oDiv.onmouseout = function () {

                startMove1();

            }

 }

            var timer = null;

            function startMove() {

                clearInterval(timer);

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

                timer = 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('div1');

                timer = setInterval(function () {

                    if (oDiv.offsetLeft< -100) {

                        clearInterval(timer);

                    }

                    else {

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

                    }


                }, 30);


            }

    </script>

</head>

<body>

    <div id="div1">

        <span id="share">分享!</span>

    </div>

</body>

</html>


正在回答

1 回答

在最前面清空一下样式。

*{

margin:0;

padding:0;

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

善良阿呆

我也是这个问题,为什么清空样式就好了呢?
2016-08-08 回复 有任何疑惑可以回复我~
#2

异择Y

以360浏览器为例,对本次运动有影响的是默认的margin。 首先,margin加载在body上(当清除margin时div会向左和向上移动可知),为8px。 其次,offsetLeft的值是div左边界至浏览器左边界的值。style.left是div左边界至body左边界的值。两个值的差值为margin:8px,也就是说在数值上offsetLeft=style.left+8。 因此,在onmouseover事件中,style.left=style.left+18 在onmouseout事件中,style.left=style.left-2。
2016-08-09 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么同样设置的速度是10px,移进移出的速度为什么不一样?

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