透明度实现了,但其他属性怎么实现,比如宽

来源:4-4 任意属性值(二)

宝慕林2917688

2016-09-02 09:19

<script type="text/javascript">
   window.onload=function() {
       var Li1 = document.getElementById('li1');
       var Li2 = document.getElementById('li2');
       Li1.onmouseover = function () {
           startMove(this, 'opacity', 100);
       }
       Li1.onmouseout = function () {
           startMove(this, 'opacity', 30);
       }
      Li2.onmouseover = function () {
           startMove(this, 'width', 400);
       }
       Li2.onmouseout = function () {
           startMove(this, 'width', 200);
       }
   }
       function getStyle(obj, attr) {
           if (obj.currentStyle) {
               return obj.currentStyle[attr];
           }
           else {
               return getComputedStyle(obj, false)[attr];
           }
       }

  // var timer=null;
  var alpha=30;
 function startMove(obj,attr,target){
     clearInterval(obj.timer);
     obj.timer=setInterval(function(){
         var icu=0;
         if (attr='opacity'){
             icu=Math.random(parseFloat(getStyle(obj,attr))*100);
         }else{
             icu=parseInt(getStyle(obj,attr));
         }
         var speed=(target-icu)/8;
         speed=speed>0?Math.ceil(speed):Math.floor(speed);
         if (attr==target){
             clearInterval(obj.timer);
         }
         else{
             if(attr='opacity') {
                 obj.style.filter = 'alpha(opacity:' + (icu + speed) + ')';
                 obj.style.opacity = (icu + speed) / 100;
             }else{
                 obj.style[attr]=icu+speed+'px';
             }
         }
     },30)


 }

</script>

写回答 关注

3回答

  • wanguanjin
    2016-09-02 11:01:48
    已采纳

    你给出的代码不是已经实现了吗,不是通过判断分开透明度和宽高了吗

  • 慕粉3760367
    2016-10-16 15:16:52

    我也不知道这个问题的答案  求解答

  • 宝慕林2917688
    2016-09-11 08:10:07

    谢谢解决了

JS动画效果

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

113925 学习 · 1443 问题

查看课程

相似问题