无限循环轮播图之运动框架(原生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 对联广告、漂浮广告封装类(IE,FF,Opera,Safari,Chrome
Nov 26 Javascript
javascript innerText和innerHtml应用
Jan 28 Javascript
jquery 图片Silhouette Fadeins渐显效果
Feb 07 Javascript
Bootstrap CSS组件之按钮组(btn-group)
Dec 17 Javascript
打字效果动画的4种实现方法(超简单)
Oct 18 Javascript
jQuery实现手机号正则验证输入及自动填充空格功能
Jan 02 jQuery
jQuery实现的滑块滑动导航效果示例
Jun 04 jQuery
vue异步加载高德地图的实现
Jun 19 Javascript
详解angular部署到iis出现404解决方案
Aug 14 Javascript
vue进入页面时不在顶部,检测滚动返回顶部按钮问题及解决方法
Oct 30 Javascript
vue axios封装httpjs,接口公用配置拦截操作
Aug 11 Javascript
JavaScript 闭包的使用场景
Sep 17 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
输出控制类
2006/10/09 PHP
php中理解print EOT分界符和echo EOT的用法区别小结
2010/02/21 PHP
PHP取整数函数常用的四种方法小结
2012/07/05 PHP
php 输出缓冲 Output Control用法实例详解
2020/03/03 PHP
php对mongodb的扩展(初识如故)
2012/11/11 Javascript
jQuery实用基础超详细介绍
2013/04/11 Javascript
jQuery时间轴插件使用详解
2015/07/16 Javascript
仅30行代码实现Javascript中的MVC
2016/02/15 Javascript
基于Three.js插件制作360度全景图
2016/11/29 Javascript
简单的jQuery拖拽排序效果的实现(增强动态)
2017/02/09 Javascript
vue数据双向绑定的注意点
2017/06/23 Javascript
VUE利用vuex模拟实现新闻点赞功能实例
2017/06/28 Javascript
vue2实现可复用的轮播图carousel组件详解
2017/11/27 Javascript
p5.js入门教程之图片加载
2018/03/20 Javascript
jQuery实现回到顶部效果
2020/10/19 jQuery
Python的print用法示例
2014/02/11 Python
零基础写python爬虫之爬虫的定义及URL构成
2014/11/04 Python
python 文件操作api(文件操作函数)
2016/08/28 Python
python+pillow绘制矩阵盖尔圆简单实例
2018/01/16 Python
Django处理文件上传File Uploads的实例
2018/05/28 Python
Python使用matplotlib绘制三维图形示例
2018/08/25 Python
Python语言检测模块langid和langdetect的使用实例
2019/02/19 Python
python仿抖音表白神器
2019/04/08 Python
python的一些加密方法及python 加密模块
2019/07/11 Python
python 日志 logging模块详细解析
2020/03/31 Python
Python中内建模块collections如何使用
2020/05/27 Python
French Connection官网:女装、男装及家居用品
2019/03/18 全球购物
全球性的在线商店:Vogca
2019/05/10 全球购物
本科毕业自我鉴定
2014/03/20 职场文书
个人授权委托书
2014/04/03 职场文书
我的画教学反思
2014/04/28 职场文书
就职演讲稿范文
2014/05/19 职场文书
小学优秀教师材料
2014/12/15 职场文书
Mysql中存储引擎的区别及比较
2021/06/04 MySQL
SpringBoot2 参数管理实践之入参出参与校验的方式
2021/06/16 Java/Android
Mysql关于数据库是否应该使用外键约束详解说明
2021/10/24 MySQL