无限循环轮播图之运动框架(原生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 相关文章推荐
为调试JavaScript添加输出窗口的代码
Feb 07 Javascript
js 火狐下取本地路径实现思路
Apr 02 Javascript
ajaxFileUpload.js插件支持多文件上传的方法
Sep 02 Javascript
JavaScript编写连连看小游戏
Jul 07 Javascript
基于vue.js实现图片轮播效果
Dec 01 Javascript
JS判断是否手机或pad访问实现方法
Dec 09 Javascript
微信JSAPI支付操作需要注意的细节
Jan 10 Javascript
js中apply与call简单用法详解
Nov 06 Javascript
AngularJS实现自定义指令及指令配置项的方法
Nov 20 Javascript
vue实现百度搜索功能
Dec 28 Javascript
使用p5.js临摹动态图片
Nov 04 Javascript
基于javascript的无缝滚动动画实现2
Aug 07 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
PHP数据类型之整数类型、浮点数的介绍
2013/04/28 PHP
php中的比较运算符详解
2013/10/28 PHP
Zend Framework教程之Zend_Layout布局助手详解
2016/03/04 PHP
Js动态创建div
2008/09/25 Javascript
仅用[]()+!等符号就足以实现几乎任意Javascript代码
2010/03/01 Javascript
UserData用法总结 lanyu出品
2010/07/01 Javascript
jquery自动切换tabs选项卡的具体实现
2013/12/24 Javascript
javascript判断移动端访问设备并解析对应CSS的方法
2015/02/05 Javascript
ECMAScript6中Set/WeakSet详解
2015/06/12 Javascript
jQuery实现鼠标经过弹出提示信息的地图热点效果
2015/08/07 Javascript
使用CSS+JavaScript或纯js实现半透明遮罩效果的实例分享
2016/05/09 Javascript
基于JavaScript实现窗口拖动效果
2017/01/18 Javascript
jQuery Ajax实现跨域请求
2017/01/21 Javascript
BootStrap表单宽度设置方法
2017/03/10 Javascript
jQuery返回定位插件详解
2017/05/15 jQuery
代码详解javascript模块加载器
2018/03/04 Javascript
父组件中vuex方法更新state子组件不能及时更新并渲染的完美解决方法
2018/04/25 Javascript
使用Vue自定义指令实现Select组件
2018/05/24 Javascript
使用RxJS更优雅地进行定时请求详析
2019/06/02 Javascript
node.js express框架简介与实现
2019/07/23 Javascript
微信小程序实现星级评价
2019/11/20 Javascript
如何用itertools解决无序排列组合的问题
2017/05/18 Python
Tensorflow中的图(tf.Graph)和会话(tf.Session)的实现
2020/04/22 Python
python中sklearn的pipeline模块实例详解
2020/05/21 Python
Python requests模块安装及使用教程图解
2020/06/30 Python
css 如何让背景图片拉伸填充避免重复显示
2013/07/11 HTML / CSS
美国家具网站:Cymax
2016/09/17 全球购物
比利时的在线灯具店:Lampen24.be
2019/07/01 全球购物
研究生自我鉴定范文
2013/10/30 职场文书
卖房授权委托书样本
2014/10/05 职场文书
租车协议书范本2014
2014/11/17 职场文书
2015年父亲节寄语
2015/03/23 职场文书
运动会通讯稿300字
2015/07/20 职场文书
中学后勤工作总结2015
2015/07/22 职场文书
Mysql关于数据库是否应该使用外键约束详解说明
2021/10/24 MySQL
星际争霸:毕姥爷vs解冻03
2022/04/01 星际争霸