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

obj.style.attr和obj.style[attr]有什么区别吗?为什么我用后者有效果,前者没效果?


<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title>Title</title>
   <style>
       *{
           margin:0;
           padding:0;
       }
       div{
           width:200px;
           height: 80px;
           background: red;
           margin-bottom: 20px;
           border: 4px solid black;
           opacity: 0.3;
           filter: alpha(opacity:30);
       }
   </style>
   <script>
       window.onload=function(){
           var Li = document.getElementsByTagName("div")[0];
                   Li.onmouseover = function(){
                       startMove(this,'opacity',100)
                   };
                   Li.onmouseout = function() {
                       startMove(this, 'opacity', 30);
                   };
           var timer = null;

           function startMove(obj,attr,target){
                   clearInterval(timer);
                   timer = setInterval(function(){
                   var icur = 0;
                       if(attr == 'opacity'){
                           icur = parseFloat(getStyle(obj,attr))*100;
                       }else{
                           icur = parseInt(getStyle(obj,attr));
                       }

                   var speed = (target - icur)/8;
                       speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed);
                   if(icur == target){
                       clearInterval(timer);
                   }
                   else{
                       if(attr == 'opacity'){
                           obj.style.filter = 'alpha(opacity:'+ (icur + speed)+')';
                           obj.style.opacity = (icur + speed)/100 ;
                       }else {
                           obj.style[attr] = icur + speed + "px";
                       }

                   }
               },30)

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

       }
   </script>
</head>
<body>

<div></div>

</body>
</html>

正在回答

2 回答

后者可以加‘’单引号表示字符串,前者点后面没办法加引号,相当于不能传参,老师有讲过!

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

obj.style.attr等价于obj.style['attr'],不要加点的!

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

qq_烟火里的尘埃_0 提问者

不好意思,我问题写错了,应该是 “obj.style.attr和obj.style[attr]有什么区别吗?为什么我用后者有效果,前者没效果?”
2016-01-30 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

obj.style.attr和obj.style[attr]有什么区别吗?为什么我用后者有效果,前者没效果?

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