首页 > Web开发 > 详细

原生JS封装运动框架。

时间:2019-02-21 11:31:07      阅读:205      评论:0      收藏:0      [点我收藏+]
//获取非行内样式
function getStyle(obj,attr){
if(obj.currentStyle){ return obj.currentStyle[attr]; }else{ return getComputedStyle(obj,1)[attr]; } } //运动框架 function sport(obj,json,fn){ //回调函数:把一个函数以一个参数的形式传递给另一个函数时,传递的这个参数就叫做回调函数 //1. 清除上一次的计时器 clearInterval(obj.timer); //2. 开启新的计时器 obj.timer = setInterval(function(){ //1. 设置开关 var stop = true; //2. 遍历json for(var attr in json){ //1. 获取当前属性值 //透明度和其它属性 if(attr === opacity){ var cur = parseInt(parseFloat(getStyle(obj,attr)) * 100); }else{ var cur = parseInt(getStyle(obj,attr)); } //2. 计算速度 var speed = (json[attr] - cur) / 8; // 0.75 // -0.75 speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed); //3. 判断属性是否到达目标值,没有到达,开关为false if(cur != json[attr]){ stop = false; } //4. 设置运动 if(attr === opacity){ obj.style.opacity = (cur + speed) / 100; obj.style.filter = alpha(opacity= + (cur + speed) + ); }else{ obj.style[attr] = cur + speed + px; } } //3. 停止计时器 if(stop){ clearInterval(obj.timer); if(typeof fn === function){ fn(); } } },30) }

 

原生JS封装运动框架。

原文:https://www.cnblogs.com/PrayLs/p/10411252.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!