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

为什么我将鼠标移动上去后他的值不是到400px,而是到391px从而停下来了?

http://img1.sycdn.imooc.com//568b4c8200012a2f09330597.jpg

/**
* Created by Administrator on 2016/1/5.
*/



function setMove(obj,sty,goal){
   var div =document.getElementById("wrap");
   var timer=null;
   timer=setInterval(function(){
       var ist = 0
       if(sty=='opacity'){
           ist=Math.round(parseFloat(setStyle(obj,sty))*100);
       }else{
           ist=parseInt(setStyle(obj,sty));
       }

       var speed = (goal-ist)/10;
       speed= speed>0? Math.ceil(speed):Math.floor(speed);
       if(ist == goal){
           clearInterval(timer);
       }else{
           if(sty=='opacity'){
               obj.style.filter='alpha(opacity'+(ist + speed)+')';
               obj.style.opacity=(ist + speed)/100;
           }else {
               obj.style[sty] = ist + speed + "px";
           }
       }
   },30);
}

function setStyle(obj,attr){
   if(obj.currentStyle){
       return obj.currentStyle[attr];
   }else{
       return getComputedStyle(obj,false)[attr];
   }
}

正在回答

1 回答

<html>
<head>
    <title> 事件</title>
    <meta charset="utf-8">
    <title>111111111</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }

        div{
            width: 200px;
            height: 200px;
            background-color: #0B5DE5;
        }
    </style>
    <script>
        function setMove(obj,sty,goal){
            var div =document.getElementById("wrap");
            var timer=null;
            timer=setInterval(function(){
                var ist = 0
                if(sty=='opacity'){
                    ist=Math.round(parseFloat(setStyle(obj,sty))*100);
                }else{
                    ist=parseInt(setStyle(obj,sty));
                }

                var speed = (goal-ist)/10;
                speed= speed>0? Math.ceil(speed):Math.floor(speed);
                if(ist == goal){
                    clearInterval(timer);
                }else{
                    if(sty=='opacity'){
                        obj.style.filter='alpha(opacity'+(ist + speed)+')';
                        obj.style.opacity=(ist + speed)/100;
                    }else {
                        obj.style[sty] = ist + speed + "px";
                    }
                }
            },30);
        }

        function setStyle(obj,attr){
            if(obj.currentStyle){
                return obj.currentStyle[attr];
            }else{
                return getComputedStyle(obj,false)[attr];
            }
        }
    </script>
</head>
<body>
<div id="div"></div>
<script>
    var div = document.getElementById('div');
    div.onmouseover = function(){
        setMove(this,'width',400);
    }
</script>
</body>
</html>

是400呀。

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

蛋疼少年的和谐青春 提问者

我在Chrome浏览器上面运行到不了400, 但是用Firefox 就能运行成功到达400,请问下大侠,這个是什么样的一个问题,就是您是用的那款浏览器做的测试呢?
2016-01-05 回复 有任何疑惑可以回复我~
#2

李晓健 回复 蛋疼少年的和谐青春 提问者

我用的就是chrome
2016-01-06 回复 有任何疑惑可以回复我~
#3

蛋疼少年的和谐青春 提问者 回复 李晓健

我的还是出问题。。
2016-01-08 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么我将鼠标移动上去后他的值不是到400px,而是到391px从而停下来了?

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