无限循环轮播图之运动框架(原生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电信网通双线自动选择技巧
Nov 18 Javascript
window.showModalDialog()返回值的学习心得总结
Jan 07 Javascript
浅谈javascript中的instanceof和typeof
Feb 27 Javascript
javascript操作ul中li的方法
May 14 Javascript
多种js图片预加载实现方式分享
Feb 19 Javascript
浅谈angularjs $http提交数据探索
Jan 20 Javascript
Javascript中click与blur事件的顺序详析
Apr 25 Javascript
React进阶学习之组件的解耦之道
Aug 07 Javascript
详解vue组件基础
May 04 Javascript
React中使用外部样式的3种方式(小结)
May 28 Javascript
vue.js实现只能输入数字的输入框
Oct 19 Javascript
如何构建 vue-ssr 项目的方法步骤
Aug 04 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开启安全模式后禁用的函数集合
2011/06/26 PHP
php中数组首字符过滤功能代码
2012/07/31 PHP
PHP中使用foreach和引用导致程序BUG的问题介绍
2012/09/05 PHP
PHP实现多维数组转字符串和多维数组转一维数组的方法
2015/08/08 PHP
PHP仿微信发红包领红包效果
2016/10/30 PHP
深入解析PHP中SESSION反序列化机制
2017/03/01 PHP
PHP实现随机数字、字母的验证码功能
2018/08/01 PHP
小议javascript 设计模式 推荐
2009/10/28 Javascript
javascript奇异的arguments分析
2010/10/20 Javascript
使用Grunt.js管理你项目的应用说明
2013/04/24 Javascript
js+css实现增加表单可用性之提示文字
2013/06/03 Javascript
js获取光标位置和设置文本框光标位置示例代码
2014/01/09 Javascript
基于jquery固定于顶部的导航响应浏览器滚动条事件
2014/11/02 Javascript
jQuery制作可自定义大小的拼图游戏
2015/03/30 Javascript
基于JavaScript短信验证码如何实现
2016/01/24 Javascript
使用JavaScript实现ajax的实例代码
2016/05/11 Javascript
JavaScript实战之带收放动画效果的导航菜单
2016/08/16 Javascript
详解基于vue-cli优化的webpack配置
2017/11/06 Javascript
JavaScript中click和onclick本质区别与用法分析
2018/06/07 Javascript
使用nodeJS中的fs模块对文件及目录进行读写,删除,追加,等操作详解
2020/02/06 NodeJs
Python yield 使用方法浅析
2017/05/20 Python
python获取指定日期范围内的每一天,每个月,每季度的方法
2019/08/08 Python
Django stark组件使用及原理详解
2019/08/22 Python
详解torch.Tensor的4种乘法
2020/09/03 Python
python 实现IP子网计算
2021/02/18 Python
用HTML5.0制作网页的教程
2010/05/30 HTML / CSS
英国男女奢华内衣和泳装购物网站:Figleaves
2017/01/28 全球购物
中国茶叶、茶具一站式网上购物商城:醉品茶城
2018/07/03 全球购物
int和Integer有什么区别
2013/05/25 面试题
新闻记者实习自我鉴定
2013/09/19 职场文书
打架检讨书2000字
2014/02/22 职场文书
代办委托书怎么写
2014/08/01 职场文书
行政司机岗位职责
2015/04/10 职场文书
关于SpringBoot 使用 Redis 分布式锁解决并发问题
2021/11/17 Redis
Mysql中一千万条数据怎么快速查询
2021/12/06 MySQL
bose降噪耳机音能消除人声吗
2022/04/19 数码科技