无标题文章

function animate(obj, json, fn) {  
  clearInterval(obj.timer);   
 obj.timer = setInterval(function () {   
     var flag = true;      
  for (var k in json) {        
    if (k === "opacity") {//特殊处理   
             //var leader = parseInt(getStyle(obj, k)) || 0;        
        var leader = getStyle(obj, k) * 100;//1          
      // 0 || 1 结果是1 那么如果透明度当前的值是0 就会变成1        
        //所以这里不能给默认值 而且也没有必要                //透明度没有单位px 所以也不用parseInt 参与运算自动变为数字    
            var target = json[k] * 100;//0.5              
  var step = (target - leader) / 10;//0.5-1=-0.5                step = step > 0 ? Math.ceil(step) : Math.floor(step);//-1                leader = leader + step;                //obj.style[k] = leader + "px";                obj.style[k] = leader / 100;//opacity没有单位            } else if (k === "zIndex") {                obj.style.zIndex = json[k];//无需渐变 直接设置即可            } else {                var leader = parseInt(getStyle(obj, k)) || 0;                var target = json[k];                var step = (target - leader) / 10;                step = step > 0 ? Math.ceil(step) : Math.floor(step);                leader = leader + step;                obj.style[k] = leader + "px";            }            if (leader !== target) {                flag = false;            }        }        if (flag) {            clearInterval(obj.timer);            if (fn) {//如果有才调用                fn();//动画执行完成后执行            }        }    }, 15);}function getStyle(obj, attr) {    if (window.getComputedStyle) {        return window.getComputedStyle(obj, null)[attr];    } else {        return obj.currentStyle[attr];    }}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容