封装移动函数-推拉窗效果

    技术2022-07-11  73

    //获取元素样式 解决getComputedStyle兼容性问题 function getStyle(obj, attr) { //找可变的量做参数 元素obj,属性:attr if (obj.currentStyle) { //ie return obj.currentStyle[attr]; } else { //标准 return getComputedStyle(obj)[attr]; } } function move(obj, attr, target) { var timer = null; clearInterval(obj.timer); //启动定时器,为对象新增属性timer,用来保存定时器编号 obj.timer = setInterval(function() { var cur = getStyle(obj, attr); //动画执行时,每一次的最新值 var speed; //速度 if (attr == 'opacity') { speed = (target - cur) / 100; //放大速度系数 100 } else { cur = parseInt(cur); //当前位置 speed = (target - cur) / 10; //速度 //速度小于0,向左移动,向下取整才可以;速度大于0,向右移动,向上取整 speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed); //最后的时候,速度小于1,向上取整1 } if (cur == target) { clearInterval(timer); } if (attr == "opacity") { //修改透明度 obj.style.opacity = parseFloat(cur) + speed; } else { obj.style[attr] = cur + speed + "px"; } }, 30); }
    Processed: 0.022, SQL: 9