//运动函数
function startMove(obj,json,callback){ //{width:3,height:300}clearInterval( obj.timer );obj.timer = setInterval( function(){var flag = true;//假设值为true时 可以停止定时器for( var attr in json ){var current = 0;if( attr == "opacity" ){current = getStyle(obj,attr) * 100 ;}else if( attr == "zIndex" ){current = parseInt( getStyle(obj,attr) ) ;}else{//获取元素的样式值current = parseInt( getStyle(obj,attr) ) ;}//缓冲运动速度确定var speed = (json[attr] - current)/10;speed = speed > 0 ? Math.ceil( speed ) : Math.floor( speed );if( current != json[attr] ){//动作没有完成 flag 就要变成falseflag = false;}//继续设置样式if( attr == "opacity" ){obj.style[attr] = (current + speed)/100;}else if( attr == "zIndex" ){obj.style[attr] = json[attr];}else{obj.style[attr] = current + speed + "px";}}//如果循环结束后 flag的值还是true 假设成立 可以停止定时器了if( flag ){ //动作完成的条件clearInterval( obj.timer );//下一个动作功能不确定 所以通过一个参数传递 这个参数表示函数//上一个动作完成后进入到下一个动作if( callback ){callback();}}} , 30 )
}
//获取css样式值
function getStyle(obj,attr){if( window.getComputedStyle ){return window.getComputedStyle(obj,false)[attr];}else{return obj.currentStyle[attr];}
}

原生js之运动函数的封装相关推荐

  1. 原生js实现动态表格分页(封装版)

    之前一直用的插件做表格分页,但是不同的场景用到的情况都不同,所以索性用个原生js搞一个封装好的. 后台动态获取数据进行渲染,等页面渲染成功之后在进行分页.数据的获取我用的vue,也可以用ajax等其他 ...

  2. js浮动运动函数html,JS+CSS动态绘制元素曲线运动轨迹(数学函数)

    相信许多小伙伴都想知道CSS+JS如何实现物体的曲线运动吧! 其实原理就是运用数学用的函数公式,本文运用的是sin函数上进行的基础变形. 今天的主要目标就是让这张图的里足球运动起来. 首先肯定要先把这 ...

  3. 原生js的图片.文字.小框的跑马灯效果及弹幕效果

    笔者在最近的一个点上项目中使用原生js遇到一个跑马灯效果,需要图片循环播放,可以根据图片的多少改变一定的样式,从而实现跑马灯效果.于是把图片的,文字的和另一种小框的都整合了一下,顺便基于小框的跑马灯增 ...

  4. 原生JS实现——flappy bird 像素小鸟 项目总结

    项目展示 项目准备 images中所用到的图片 index.html 用一个 div 来 包裹游戏内容区域 <div id="game"><!-- 小鸟div - ...

  5. 原生js之fetch

    fetch是一种HTTP数据请求的方式.fetch不是ajax的进一步封装,是原生js.Fetch函数就是原生js,没有使用XMLHttpRequest对象,是一个全局方法. fetch 规范与 jQ ...

  6. 原生JS封装时间运动函数

    /*讲时间运动之前先给大家复习一下运动函数 通常大家都会写运动框架,一个定时器(Timer),一个步长(step 就是每次运动的距离),一个当前位置(current)一个目标位置(target),然后 ...

  7. animate用法 js原生_原生JS封装animate运动框架的实例

    如下所示: div { width: 100px; height: 100px; background-color: pink; position: absolute; left: 0; top: 5 ...

  8. 原生JS基于window.scrollTo()封装垂直滚动动画工具函数

    概要: 原生JS基于window.scrollTo()封装垂直滚动动画工具函数,可应用与锚点定位.回到顶部等操作. ####封装原因: 在vue项目中,遇到需要实现垂直滚动效果的需求,初步想到的方法有 ...

  9. 原生JS基础实现萤火虫效果【附源码及封装函数】

    上代码之前,先看一下效果: CSS部分(此处用元素模拟萤火虫,背景可自行设置): <style>.box{width: 4px;height: 5px;background: wheat; ...

最新文章

  1. 新手如何登陆阿里云服务器,阿里云服务器怎么登陆
  2. [Android]《Android艺术开发探索》第一章读书笔记
  3. mysql隐式锁定辅助索引_当Mysql - InnoDB行锁遇到复合主键和多列索引-Go语言中文社区...
  4. C#开发微信门户及应用(18)-微信企业号的通讯录管理开发之成员管理
  5. jmeter使用_jmeter工具的使用
  6. 学习笔记(02):MySQL数据库运维与管理-03-状态变量及查看方法
  7. 创翼软件linux版本,创翼pc版下载-创翼电脑版下载v5.2.22.5226-软件爱好者
  8. jQuery动画:实现渐入渐出
  9. 联想计算机电源维修,自己动手修理联想X1 YOGA电源故障
  10. python爬取北京政务公开惠民地图信息
  11. node 生成随机头像_给微信设置卡通头像,再不怕撞脸!
  12. 短期工作经历到底要不要写到简历上?
  13. Androidstudio setting .DEX extension only for .CLASS files
  14. 7、公共电话交换网络(物理层)
  15. 全国地区+邮编的数据库脚本
  16. 思维导图软件 XMind 8 和 XMind 2020的选择
  17. M1芯片的Mac上iPhone虚拟机滚动过快的问题
  18. VM 将宿主机文件夹 映射至 虚拟机以及vm tools【共享文件夹、复制粘贴、拖动上传下载】
  19. OC Bock的使用
  20. 宜信敏捷数据中台建设实践

热门文章

  1. rabbitmq细节说明与效率(三)
  2. 2010 我的求职经历(4)
  3. 使用 @Transactional 时常犯的N种错误
  4. 矩阵变换:矩阵是怎样变换向量的
  5. 速看!没有比这更全面的 Firebase 介绍!
  6. K8S之taint\cordon\uncordon\drain使用案例——筑梦之路
  7. Cadence教程4——环形振荡器
  8. 用net user新建用户并设置管理员
  9. 百度地图-绘制工具以及覆盖物的简单使用
  10. PAT甲级1005 Spell it Right 【20】【字符串操作】