无限循环轮播图之运动框架(原生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 相关文章推荐
文字幻灯片
Jun 26 Javascript
[原创]网络复制内容时常用的正则+editplus
Nov 30 Javascript
jquery 新手学习常见问题解决方法
Apr 18 Javascript
修改好的jquery滚动字幕效果实现代码
Jun 22 Javascript
实例说明为什么不要行内使用javascript
Apr 18 Javascript
JavaScript运行机制之事件循环(Event Loop)详解
Oct 10 Javascript
jQuery中each()方法用法实例
Dec 27 Javascript
原生javascript上传图片带进度条【实例分享】
Apr 06 Javascript
详解VueJS 数据驱动和依赖追踪分析
Jul 26 Javascript
vue实现百度下拉列表交互操作示例
Mar 12 Javascript
vue-router两种模式区别及使用注意事项详解
Aug 01 Javascript
jquery制作的移动端购物车效果完整示例
Feb 24 jQuery
原生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框架的性能
2008/01/10 PHP
php实现文件下载功能的几个代码分享
2014/05/10 PHP
将二维数组转为一维数组的2种方法
2014/05/26 PHP
PHP+MySQL统计该库中每个表的记录数并按递减顺序排列的方法
2016/02/15 PHP
php DES加密算法实例分析
2019/09/18 PHP
Javascript 构造函数 实例分析
2008/11/26 Javascript
javascript Array数组对象的扩展函数代码
2010/05/22 Javascript
设为首页和收藏的Javascript代码(亲测兼容IE,Firefox,chrome等浏览器)
2013/11/18 Javascript
Node.js创建Web、TCP服务器
2017/12/05 Javascript
nginx部署访问vue-cli搭建的项目的方法
2018/02/12 Javascript
实现jquery放大镜的两种方法
2018/02/22 jQuery
vue项目中axios请求网络接口封装的示例代码
2018/12/18 Javascript
Vue实现远程获取路由与页面刷新导致404错误的解决
2019/01/31 Javascript
关于layui 实现点击按钮添加一行(方法渲染创建的table)
2019/09/29 Javascript
JS操作字符串转数字的常见方法示例
2019/10/29 Javascript
Js on及addEventListener原理用法区别解析
2020/07/11 Javascript
js实现简单的轮播图效果
2020/12/13 Javascript
[02:04]2016国际邀请赛中国区预选赛VG.R晋级之路
2016/07/01 DOTA
[04:19]DOTA2完美大师赛第四天精彩集锦
2017/11/26 DOTA
Python操作Word批量生成文章的方法
2015/07/28 Python
使用Python的Tornado框架实现一个Web端图书展示页面
2016/07/11 Python
8种用Python实现线性回归的方法对比详解
2019/07/10 Python
python读取word 中指定位置的表格及表格数据
2019/10/23 Python
Python object类中的特殊方法代码讲解
2020/03/06 Python
电气自动化自荐信
2013/10/10 职场文书
考试作弊被抓检讨书
2014/01/10 职场文书
宿舍使用违章电器检讨书
2014/01/12 职场文书
幼儿园中班上学期评语
2014/04/18 职场文书
计算机售后服务承诺书
2014/05/30 职场文书
优秀团员事迹材料1500字
2014/08/31 职场文书
党的群众路线教育实践活动实施方案
2014/10/31 职场文书
幼儿园亲子活动感想
2015/08/07 职场文书
python 批量压缩图片的脚本
2021/06/02 Python
pycharm部署django项目到云服务器的详细流程
2021/06/29 Python
MySQL query_cache_type 参数与使用详解
2021/07/01 MySQL
Python IO文件管理的具体使用
2022/03/20 Python