无限循环轮播图之运动框架(原生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 相关文章推荐
JQuery 绑定事件时传递参数的实现方法
Oct 13 Javascript
使用jQuery和PHP实现类似360功能开关效果
Feb 12 Javascript
jQuery插件slicebox实现3D动画图片轮播切换特效
Apr 12 Javascript
深入理解JQuery循环绑定事件
Jun 02 Javascript
BootStrap整体框架之基础布局组件
Dec 15 Javascript
js使用Replace结合正则替换重复出现的字符串功能示例
Dec 27 Javascript
浅谈ES6新增的数组方法和对象
Aug 08 Javascript
前端开发不得不知的10个最佳ES6特性
Aug 30 Javascript
如何开发出更好的JavaScript模块
Dec 22 Javascript
基于jQuery的时间戳与日期间的转化
Jun 21 jQuery
微信公众号服务器验证Token步骤图解
Dec 30 Javascript
JS数组索引检测中的数据类型问题详解
Jan 11 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
10个可以简化php开发过程的MySQL工具
2010/04/11 PHP
PHP获取当前所在目录位置的方法
2014/11/26 PHP
symfony表单与页面实现技巧
2015/01/26 PHP
详解php实现页面静态化原理
2017/06/21 PHP
php提供实现反射的方法和实例代码
2019/09/17 PHP
利用JQuery为搜索栏增加tag提示
2009/06/22 Javascript
jQuery 判断元素上是否绑定了事件
2009/10/28 Javascript
JavaScript高级程序设计 DOM学习笔记
2011/09/10 Javascript
js左右弹性滚动对联广告代码分享
2014/02/19 Javascript
javascript setinterval 的正确语法如何书写
2014/06/17 Javascript
原生js实现模拟滚动条
2015/06/15 Javascript
JS实现图片高亮展示效果实例
2015/11/24 Javascript
js学习阶段总结(必看篇)
2016/06/16 Javascript
JSON格式的时间/Date(2367828670431)/格式转为正常的年-月-日 格式的代码
2016/07/27 Javascript
快速掌握jQuery插件WebUploader文件上传
2016/11/07 Javascript
详解堆的javascript实现方法
2016/11/29 Javascript
Bootstrap select实现下拉框多选效果
2016/12/23 Javascript
使用jQuery实现一个类似GridView的编辑,更新,取消和删除的功能
2017/03/15 Javascript
ionic2打包android时gradle无法下载的解决方法
2017/04/05 Javascript
js实现列表向上无限滚动
2020/01/13 Javascript
用Q-learning算法实现自动走迷宫机器人的方法示例
2019/06/03 Python
Python Django基础二之URL路由系统
2019/07/18 Python
python监控nginx端口和进程状态
2019/09/06 Python
浅谈Python中re.match()和re.search()的使用及区别
2020/04/14 Python
HTML5地理定位与第三方工具百度地图的应用
2016/11/17 HTML / CSS
英国领先的珍珠首饰品牌:Orchira
2016/09/11 全球购物
北京RT科技有限公司.net工程师面试题
2013/02/15 面试题
营销总经理岗位职责
2014/02/02 职场文书
铁路工务反思材料
2014/02/07 职场文书
地质灾害防治方案
2014/05/14 职场文书
国贸专业毕业求职信
2014/06/11 职场文书
学术研讨会主持词
2015/07/04 职场文书
《正比例》教学反思
2016/02/23 职场文书
matlab xlabel位置的设置方式
2021/05/21 Python
ObjectMapper 如何忽略字段大小写
2021/06/29 Java/Android
Go并发4种方法简明讲解
2022/04/06 Golang