无限循环轮播图之运动框架(原生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 相关文章推荐
angularjs的一些优化小技巧
Dec 06 Javascript
关于js原型的面试题讲解
Sep 25 Javascript
微信小程序 location API接口详解及实例代码
Oct 12 Javascript
bootstrap中使用google prettify让代码高亮的方法
Oct 21 Javascript
分分钟玩转Vue.js组件(二)
Mar 01 Javascript
layui表格实现代码
May 20 Javascript
解决vue2.x中数据渲染以及vuex缓存的问题
Jul 13 Javascript
浅谈vue中.vue文件解析流程
Apr 24 Javascript
vue使用showdown并实现代码区域高亮的示例代码
Oct 17 Javascript
详解ECMAScript2019/ES10新属性
Dec 06 Javascript
JavaScript数组去重实现方法小结
Jan 17 Javascript
Javascript confirm多种使用方法解析
Sep 25 Javascript
原生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
Look And Say 序列php实现代码
2011/05/22 PHP
php获取四位字母和数字的随机数的实现方法
2015/01/09 PHP
深入研究PHP中的preg_replace和代码执行
2018/08/15 PHP
php更新cookie内容的详细方法
2019/09/30 PHP
使用Git实现Laravel项目的自动化部署
2019/11/24 PHP
将HTML自动转为JS代码
2006/06/26 Javascript
基于Asp.net与Javascript控制的日期控件
2010/05/22 Javascript
用Javascript实现Sleep暂停功能代码
2010/09/03 Javascript
jQuery jqgrid 对含特殊字符json 数据的 Java 处理方法
2011/01/01 Javascript
正则表达式搭配js轻松处理json文本方便而老古
2013/02/17 Javascript
详解AngularJS的通信机制
2015/06/18 Javascript
javascript顺序加载图片的方法
2015/07/18 Javascript
JS实现模拟百度搜索“2012世界末日”网页地震撕裂效果代码
2015/10/31 Javascript
nodejs初步体验篇
2015/11/23 NodeJs
js实现卡片式项目管理界面UI设计效果
2015/12/08 Javascript
Bootstrap 模态对话框只加载一次 remote 数据的完美解决办法
2017/07/09 Javascript
JavaScript编程设计模式之观察者模式(Observer Pattern)实例详解
2017/10/25 Javascript
bootstrap table支持高度百分比的实例代码
2018/02/28 Javascript
js数组去重的N种方法(小结)
2018/06/07 Javascript
基于layui轮播图满屏是高度自适应的解决方法
2019/09/16 Javascript
教你使用python画一朵花送女朋友
2018/03/29 Python
详解Python3的TFTP文件传输
2018/06/26 Python
解决jupyter notebook import error但是命令提示符import正常的问题
2020/04/15 Python
HTML5离线缓存Manifest是什么
2016/03/09 HTML / CSS
eBay瑞士购物网站:eBay.ch
2018/12/24 全球购物
智能钱包:Ekster
2019/11/21 全球购物
这76道Java面试题及答案,祝你能成功通过面试
2016/04/16 面试题
专升本个人自我评价
2013/12/22 职场文书
师范类求职信
2014/06/21 职场文书
电子商务专业应届毕业生求职信
2014/06/21 职场文书
基层党员群众路线教育实践活动个人对照检查材料思想汇报
2014/10/05 职场文书
公安机关正风肃纪剖析材料
2014/10/10 职场文书
委托函范文
2015/01/29 职场文书
Vue图片裁剪组件实例代码
2021/07/02 Vue.js
人民币符号
2022/02/17 杂记
Grafana可视化监控系统结合SpringBoot使用
2022/04/19 Redis