无限循环轮播图之运动框架(原生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 放大镜 移动镜片效果代码
May 09 Javascript
Highcharts 非常实用的Javascript统计图demo示例
Jul 03 Javascript
javascript获得网页窗口实际大小的示例代码
Sep 21 Javascript
JS匀速运动演示示例代码
Nov 26 Javascript
js完美实现@提到好友特效(兼容各大浏览器)
Mar 16 Javascript
javascript 实现map集合
Apr 03 Javascript
JavaScript里四舍五入函数round用法实例
Apr 06 Javascript
javascript实现的上下无缝滚动效果
Sep 19 Javascript
详解在vue-cli项目中安装node-sass
Jun 21 Javascript
js编写简单的计时器功能
Jul 15 Javascript
javascript/jquery实现点击触发事件的方法分析
Nov 11 jQuery
Vue替代marquee标签超出宽度文字横向滚动效果
Dec 09 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
php5中类的学习
2008/03/28 PHP
php处理斐波那契数列非递归方法
2012/02/04 PHP
实现获取http内容的php函数分享
2014/02/16 PHP
Drupal7 form表单二次开发要点与实例
2014/03/02 PHP
写一段简单的PHP建立文件夹代码
2015/01/06 PHP
php中使用url传递数组的方法
2015/02/11 PHP
用JavaScript脚本实现Web页面信息交互
2006/10/11 Javascript
js实现多选项切换导航菜单的方法
2015/02/06 Javascript
浅谈JavaScript变量的自动转换和语句
2016/06/12 Javascript
react路由配置方式详解
2017/08/07 Javascript
vue父组件点击触发子组件事件的实例讲解
2018/02/08 Javascript
select标签设置默认选中的选项方法
2018/03/02 Javascript
jQuery实现仿京东防抖动菜单效果示例
2018/07/06 jQuery
在Vue-cli里应用Vuex的state和mutations方法
2018/09/16 Javascript
ajaxfileupload.js实现上传文件功能
2019/04/19 Javascript
javascript实现简易聊天室
2019/07/12 Javascript
Scrapy框架使用的基本知识
2018/10/21 Python
django实现类似触发器的功能
2019/11/15 Python
Python udp网络程序实现发送、接收数据功能示例
2019/12/09 Python
Python+OpenCV+图片旋转并用原底色填充新四角的例子
2019/12/12 Python
python pip安装包出现:Failed building wheel for xxx错误的解决
2019/12/25 Python
通过python检测字符串的字母
2020/02/18 Python
学习Python列表的基础知识汇总
2020/03/10 Python
Python HTMLTestRunner如何下载生成报告
2020/09/04 Python
pycharm激活码免费分享适用最新pycharm2020.2.3永久激活
2020/11/25 Python
瑞贝卡·明可弗包包官网:Rebecca Minkoff
2016/07/21 全球购物
Ticketmaster德国票务网站:购买音乐会和体育等门票
2016/11/14 全球购物
EJB需直接实现它的业务接口或Home接口吗,请简述理由
2016/11/23 面试题
历史教育专业个人求职信
2013/12/13 职场文书
前处理组长岗位职责
2014/03/01 职场文书
小学优秀班干部事迹材料
2014/05/25 职场文书
社区元宵节活动总结
2015/02/06 职场文书
综合素质自我评价评语
2015/03/06 职场文书
司机岗位职责范本
2015/04/10 职场文书
mongodb清除连接和日志的正确方法分享
2021/09/15 MongoDB
ORACLE中dbms_output.put_line输出问题的解决过程
2022/06/28 Oracle