问题是我在chrome浏览器上测试过就算不加Math.round()也不会出现老师说的小数不稳定的情况啊

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

KingZero00

2016-04-06 17:32


 window.onload = function(){
  var Li1 = document.getElementById('li1');
       Li1.timer = null;
       Li1.onmouseover = function(){
         startMove(this,'opacity',100);
       }
       Li1.onmouseout = function(){
         startMove(this,'opacity',30);
       }
   }

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

     
        var speed = (iTarget-icur)/8;
        speed = speed > 0 ? Math.ceil(speed):Math.floor(speed);
        if(icur == iTarget){
         clearInterval(obj.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';//.style[attr]方便传参
         }
       
       }
       
      },30)
 }

 function getStyle(obj,attr){
   if (obj.currentStyle) {
     return obj.currentStyle[attr];//支持IE
   }else{
     return getComputedStyle(obj,false)[attr];//支持火狐
   }
 }


写回答 关注

1回答

  • qq_囿于平常_0
    2016-04-06 19:35:08
    已采纳

    并不是所有数据都会出现小数点误差情况,老师也列举了好几个,不是就出现一个么。

    虽然误差小,但是加了总比不加合适

    KingZe...

    非常感谢!

    2016-04-06 20:30:14

    共 1 条回复 >

JS动画效果

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

113920 学习 · 1500 问题

查看课程

相似问题