无限循环轮播图之运动框架(原生JS)

封装运动框架

 1 function getStyle(obj,name){
 2     if(obj.currentStyle){
 3         return obj.currentStyle[name];
 4     }else{
 5         return getComputedStyle(obj,false)[name];
 6     }
 7 }
 8 function move(obj,json,options){
 9     var options=options || {};
10     var duration=options.duration || 800;
11     var easing=options.easing || ‘linear‘;
12     var n=0;
13     var start={};
14     var dis={};
15     var count=Math.ceil(duration/30);
16     //{top:0,left:0}
17     for(name in json){
18         start[name]=parseFloat(getStyle(obj,name));
19         dis[name]=json[name]-start[name];
20     }
21
22     clearInterval(obj.timer);
23     obj.timer=setInterval(function(){
24         n++;
25         for(name in json){
26             switch (easing){
27                 case ‘linear‘:
28                     var a=n/count;
29                     var cur=start[name]+dis[name]*a;
30                     break;
31                 case ‘ease-out‘:
32                     var a=1-n/count;
33                     var cur=start[name]+dis[name]*(1-a*a*a);
34                     break;
35                 case ‘ease-in‘:
36                     var a=n/count;
37                     var cur=start[name]+dis[name]*a*a*a;
38                     break;
39             }
40             if(name==‘opacity‘){
41                 obj.style[name]=cur;
42             }else{
43                 obj.style[name]=cur+‘px‘;
44             }
45         }
46         if(n==count){
47             clearInterval(obj.timer);
48             options.complete && options.complete();
49         }
50     },30);
51 }
时间: 2024-08-06 20:08:30

无限循环轮播图之运动框架(原生JS)的相关文章

iOS: 无限循环轮播图简单封装

轮播图思路: 1.首先要有一个ScrollView和两张图片,把图片放到ScrollView上. 2.要想滚动ScrollView的宽度需设置屏宽的2倍. 3.循环滚动,当滚动到最后一张图片时,采用偏移的方法,将偏移量归零,回到第一张图片. 4.将第二张的图片上的所有值赋给第一张图片. 5.设置让它自己滚动,需添加定时器. 需要的第三方数据库:SDWebImage m.文件内: #imporst "ScrollView.h" @interface ScrollView ()<UI

无限循环轮播图之JS部分(原生JS)

JS逻辑与框架调用 1 <script type="text/javascript"> 2 var oBox = document.getElementById('box'); 3 var oPrev = document.getElementById('prev'); 4 var oNext = document.getElementById('next'); 5 var oUl = oBox.children[0]; 6 var aLi = oUl.children;

利用jQuery实现图片无限循环轮播(不借助于轮播插件)

原来我主要是用Bootstrap来实现轮播图的功能,而这次是用javaScript和jQuery来实现图片无限循环轮播! 用到的技术有:html.css.JavaScript(少).jQuery(主要) 效果展示: html代码: <body> <div id="container"><!-- left:-600px 表示:页面加载出现的第一张图片是1.jp --> <div id="list" style="le

JS-特效 ~ 01. 事件对象、offset偏移/检测、无缝滚动、自动循环轮播图

Math.round ( ) :正书四舍五入,负数五舍六入 用定时器,先清除定时器 事件对象 event event:事件被触动时,鼠标和键盘的状态,通过属性控制 Offset:偏移,检测 1. 获取元素尺寸 2. 检测盒子的宽高     事件源.offsetLeft. /. ele.offsetWidth /返回的数值没有单位,是number类型 /包括内边距.边框,不包括外边距 3. 获取定位的元素的left和top值  offsetLeft / offsetTop 如果被获取的元素没有定位

Android ViewPager实现循环轮播图

一.原理 ViewPager是Android中使用频率相对较高的view组件,同时对滑动过程中的事件进行了处理,因此非常适合轮播图.关于轮播图的实现,有很多方法,使用HorizontalView或者RecylerView也可以实现,但是需要处理fling操作,这里我们用ViewPager避免这些工作. 网上有很多关于ViewPager轮播的轮播实现,其原理大多数给PagerAdapter的getCount 放大N倍,N大于100,1000等.这里我们使用另一种思路,数据映射. 数据映射方案:假设

android-auto-scroll-view-pager (无限广告轮播图)

github 地址: https://github.com/Trinea/android-auto-scroll-view-pager Gradle: compile ('cn.trinea.android.view.autoscrollviewpager:android-auto-scroll-view-pager:1.1.2') { exclude module: 'support-v4' } -keep class cn.trinea.android.** { *; } -keepclas

Celery框架 接口缓存, Celery框架, Django项目实现轮播图缓存更新

接口缓存 """ 1)什么是接口的后台缓存 前台访问后台接口,后台会优先从缓存(内存)中查找接口数据 如果有数据,直接对前台响应缓存数据 如果没有数据,与(mysql)数据库交互,得到数据,对前台响应,同时将数据进行缓存,以备下次使用 了解:前台缓存 - 前台在请求到接口数据后,在前台建立缓存,再发送同样请求时,发现前台缓存有数据,就不再对后台做请求了 2)什么的接口会进行接口缓存 i)接口会被大量访问:比如主页中的接口,几乎所有人都会访问,而且会重复访问 ii)在一定时间内

Bootstrap实现轮播图

第一步:设计轮播图容器:div.carousel,添加slide平滑切换,并定义id,方便后面采用data属性来触发 <div class='carousel slide' id="turns-img"></div> 第二步:设计计数器:ol.carousel-indicators <ol class="carousel-indicators"> <li class="active"></li

一步一步拆解一个简单的iOS轮播图(三图)

导言(可以不看): 不吹不黑,也许是东半球最简单的iOS轮播图拆分注释(讲解不敢当)了(tree new bee).(一句话包含两个人,你能猜到有谁吗?提示:一个在卖手机,一个最近在卖书)哈哈... 我第一次项目中需要使用轮播图的时候我是用的别人写好的一个轮子,那个轮播封装很多东西,包括比如可以设置pageControl的位置,可以传图片url或本地图片,缓存网络图片等等.但是我觉得没必要搞那么复杂,我喜欢简单并足够做事的东西.现在有时间便想自己把它拆解一下.看了一些简书上一些作者写的关于轮播图