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

为什么透明动画没有结果!

<!DOCTYPE HTML>
<html lang="en/zh">
<head>
    <meta charset="UTF-8">
    <title>JS_动画任意属性值一</title>
    <style type="text/css">
        *{
            padding: 0px;
            margin: 0px;            
        }
        #div1{
            width: 200px;
            height: 200px;
            background: red;
            border: 2px solid blue;    
            filter:alpha(opacity:30);    /*ie低版本不支持opacity的  只支持filter */    
            opacity: 0.3;    /*firefox,chrome*/
        }
    </style>
    <script type="text/javascript">
        window.onload=function(){            
            var div1=document.getElementById("div1");
            div1.onmouseover=function(){
                move(this,"opacity",100);
            }
            div1.onmouseout=function(){
                move(this,"opacity",30);
            }
        }

        /*动画函数*/
        var timer=null;
        var speed=0;        
        function move(obj,attr,target){
            clearInterval(obj.timer);
            obj.timer=setInterval(function(){
                var speed=0;    
                var cur=0;
                if (attr=="opacity") {
                    cur=Math.round(parseFloat(getStyle(obj.attr))*100);
                }else{
                    var cur=parseInt(getStyle(obj,attr));
                }                
                var speed=(target-cur)/8;
                speed=speed>0?Math.ceil(speed):Math.floor(speed);
                if(cur==target){
                    clearInterval(obj.timer);
                }else{
                    if (attr=="opacity"){
                        obj.style.filter="alpha(opacity:"+(cur+speed)+")";
                        obj.style.opacity=(cur+speed)/100;
                    }else{
                        obj.style[attr]=cur+speed+"px";
                    }
                }
            },30);
        }
        /*获取样式函数*/
        function getStyle(obj,attr){
            if (obj.currentStyle) {
                return obj.currentStyle[attr];
            }else{
                return getComputedStyle(obj,false)[attr];
            }
        }
    </script>
</head>
<body>
    <div id="div1"></div>
</body>
</html>


正在回答

2 回答

 if (attr=="opacity") {
                    cur=Math.round(parseFloat(getStyle(obj.attr))*100);
                }else{
                    var cur=parseInt(getStyle(obj,attr));
                }

太马虎了吧逗号写成了点,应该是这样的 cur=Math.round(parseFloat(getStyle(obj,attr))*100);

2 回复 有任何疑惑可以回复我~

虽然我知道为什么,问人问题 用这个态度是不是不太恰当。

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

记得喝水 提问者

嗯,是,当时太着急了。不好意思啊!大侠:)
2015-12-07 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JS动画效果
  • 参与学习       113926    人
  • 解答问题       1443    个

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

进入课程

为什么透明动画没有结果!

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