为什么speed直接用小数不可以,只能用整数,speed/100才可以,用小数判断出错????

来源:2-2 JS透明度动画

慕粉3601794

2017-09-18 09:38

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <style type="text/css">
        #one{
            width:200px;
            height:200px;
            opacity: 0.3;
            background: red;
        }
    </style>
    <script type="text/javascript">
        window.onload=function(){
            var one=document.getElementById("one");
            one.onmouseover=function(){
                startMove(1);
            }
            one.onmouseout=function(){
                startMove(0.3);
            }
        }
        var timer=null;
        var alpha=0.3;
        function startMove(target){
        var one=document.getElementById("one");
        clearInterval(timer);
        var speed=0;
        if(alpha>target){
            speed=-0.1;
        }else{
            speed=0.1;
        }
        timer=setInterval(function(){
            if(alpha==target){
                clearInterval(timer);
            }
            else{
                alpha+=speed;
                one.style.opacity=alpha;                
            }
        },30);
        
        }
    </script>
    <body>
        <div id="one"></div>
    </body>
</html>

写回答 关注

1回答

  • 慕数据9685367
    2017-09-19 09:26:55
    已采纳

    javascript的计算能力不强,用小数的方式来做数学运算容易得出错误结果,建议需要运算的代码尽量避开小数。

    慕粉3601...

    好的好的,O(∩_∩)O谢谢

    2017-09-19 10:09:29

    共 1 条回复 >

JS动画效果

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

113925 学习 · 1443 问题

查看课程

相似问题