博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
原生JS封装运动框架。
阅读量:7131 次
发布时间:2019-06-28

本文共 1495 字,大约阅读时间需要 4 分钟。

//获取非行内样式 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)}

 

转载于:https://www.cnblogs.com/PrayLs/p/10411252.html

你可能感兴趣的文章
Git for Windows 2.21.0 发布,Win 下的 Git 客户端
查看>>
JSON和XML格式转换
查看>>
XXL-RPC v1.3.2,分布式服务框架
查看>>
将c++静态库实现二次封装供java调用
查看>>
在阿里云kubernetes上部署Jenkins Master
查看>>
VueJs开发笔记—IDE选择和优化、框架特性、数据调用、路由选项及使用
查看>>
MySQL 数据库的备份与恢复
查看>>
Android中的设计模式之单例模式
查看>>
使用Cordova将您的前端JavaScript应用打包成手机原生应用
查看>>
用Python玩转微信
查看>>
Bootstrap 小结
查看>>
《JavaScript权威指南》——JavaScript核心
查看>>
C语言 时间函数的学习
查看>>
你真的懂Redis事务吗?
查看>>
收藏 | 12个ggplot2拓展程序助你强化R可视化
查看>>
1-Linux C语言编程基本原理与实践-学习笔记
查看>>
WRF-DA代码编译与安装(二)——WRF-DA模块的编译与安装
查看>>
2018年美团Android校招
查看>>
Spring消息之WebSocket
查看>>
Java 文件流操作.
查看>>