无限循环轮播图之运动框架(原生JS实现)


Posted in Javascript onOctober 01, 2017

封装运动框架

function getStyle(obj,name){
 if(obj.currentStyle){
 return obj.currentStyle[name];
 }else{
 return getComputedStyle(obj,false)[name];
 }
}
function move(obj,json,options){
 var options=options || {};
 var duration=options.duration || 800;
 var easing=options.easing || 'linear';
 var n=0;
 var start={};
 var dis={};
 var count=Math.ceil(duration/30);
 //{top:0,left:0}
 for(name in json){
 start[name]=parseFloat(getStyle(obj,name));
 dis[name]=json[name]-start[name];
 }

 clearInterval(obj.timer);
 obj.timer=setInterval(function(){
 n++;
 for(name in json){
  switch (easing){
  case 'linear':
   var a=n/count;
   var cur=start[name]+dis[name]*a;
   break;
  case 'ease-out':
   var a=1-n/count;
   var cur=start[name]+dis[name]*(1-a*a*a);
   break;
  case 'ease-in':
   var a=n/count;
   var cur=start[name]+dis[name]*a*a*a;
   break;
  }
  if(name=='opacity'){
  obj.style[name]=cur;
  }else{
  obj.style[name]=cur+'px';
  }
 }
 if(n==count){
  clearInterval(obj.timer);
  options.complete && options.complete();
 }
 },30);
}

以上这篇无限循环轮播图之运动框架(原生JS实现)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js对象的比较
Feb 26 Javascript
JavaScript动态创建div属性和样式示例代码
Oct 09 Javascript
javascript放大镜效果的简单实现
Dec 09 Javascript
JavaScript中的对象序列化介绍
Dec 30 Javascript
javascript动态修改Li节点值的方法
Jan 20 Javascript
微信小程序中做用户登录与登录态维护的实现详解
May 17 Javascript
打字效果动画的4种实现方法(超简单)
Oct 18 Javascript
基于vue2实现上拉加载功能
Nov 28 Javascript
11行JS代码制作二维码生成功能
Mar 09 Javascript
Angular2实现的秒表及改良版示例
May 10 Javascript
简介JavaScript错误处理机制
Aug 04 Javascript
Vue包大小优化的实现(从1.72M到94K)
Feb 18 Vue.js
原生JS实现图片无缝滚动方法(附带封装的运动框架)
Oct 01 #Javascript
原生js封装运动框架的示例讲解
Oct 01 #Javascript
JS Testing Properties 判断属性是否在对象里的方法
Oct 01 #Javascript
基于原生js运动方式关键点的总结(推荐)
Oct 01 #Javascript
vuejs使用递归组件实现树形目录的方法
Sep 30 #Javascript
Easy UI动态树点击文字实现展开关闭功能
Sep 30 #Javascript
js实现轮播图的两种方式(构造函数、面向对象)
Sep 30 #Javascript
You might like
php方法调用模式与函数调用模式简例
2011/09/20 PHP
PHP 杂谈《重构-改善既有代码的设计》之三 重新组织数据
2012/04/09 PHP
php上传文件并存储到mysql数据库的方法
2015/03/16 PHP
分享php多功能图片处理类
2016/05/15 PHP
Yii2框架视图(View)操作及Layout的使用方法分析
2019/05/27 PHP
利用js获取服务器时间的两个简单方法
2010/01/08 Javascript
javascript操作cookie的文章(设置,删除cookies)
2010/04/01 Javascript
jquery.validate使用攻略 第五步 正则验证
2010/07/01 Javascript
你需要知道的10个最佳javascript开发实践小结
2012/04/15 Javascript
Javascript中匿名函数的调用与写法实例详解(多种)
2016/01/26 Javascript
js中 计算两个日期间的工作日的简单实例
2016/08/08 Javascript
bootstrap datepicker限定可选时间范围实现方法
2016/09/28 Javascript
js实现一键复制功能
2017/03/16 Javascript
使用jQuery实现简单的tab框实例
2017/08/22 jQuery
使用jQuery实现两个div中按钮互换位置的实例代码
2017/09/21 jQuery
微信小程序之多文件下载的简单封装示例
2018/01/29 Javascript
JS异步错误捕获的一些事小结
2019/04/26 Javascript
jQuery实现每日秒杀商品倒计时功能
2019/09/06 jQuery
mpvue 页面预加载新增preLoad生命周期的两种方式
2019/10/17 Javascript
Element-ui树形控件el-tree自定义增删改和局部刷新及懒加载操作
2020/08/31 Javascript
[49:30]DOTA2-DPC中国联赛正赛 Dragon vs Dynasty BO3 第二场 3月4日
2021/03/11 DOTA
详细讲解用Python发送SMTP邮件的教程
2015/04/29 Python
Python+django实现简单的文件上传
2016/08/17 Python
用python处理图片之打开\显示\保存图像的方法
2018/05/04 Python
python自动循环定时开关机(非重启)测试
2019/08/26 Python
Python绘图实现显示中文
2019/12/04 Python
python图形开发GUI库wxpython使用方法详解
2020/02/14 Python
美国用餐电影院:Alamo Drafthouse Cinema
2020/01/23 全球购物
医院后勤自我鉴定
2013/10/13 职场文书
司机岗位职责
2013/11/15 职场文书
商场消防演习方案
2014/02/12 职场文书
幼儿园秋游感想
2014/03/12 职场文书
化学工程专业求职信
2014/08/10 职场文书
村长党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
法学专业毕业实习自我鉴定2014
2014/09/27 职场文书
优秀教师个人材料
2014/12/15 职场文书