问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

js settimeout和setinterval怎么配合做轮播

发布网友 发布时间:2022-04-20 07:29

我来回答

2个回答

懂视网 时间:2022-04-20 11:50

本文实例为大家分享了setTimeout实现轮循动画的具体代码,供大家参考,具体内容如下

代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Document</title>
</head>
<body>
 <p id='box'></p>
 <script>
 var oBox = document.getElementById("box");
 var maxLeft = utils.win('clientWidth')-oBox.offsetWidth;
 var step = 5;
 var timer = null;
 //使用递归思想完成setTimeout的轮循动画:每一次在执行动画之前把上一次设置没用的定时器清除掉,节约我们的内存空间
 function move(){
 window.clearTimeout(timer);
 var curLeft = utils.css(oBox,"left");
 if(curLeft+step >= maxLeft){//边界判断
 utils.css(oBox,"left",maxLeft);
 return;
 }
 curLeft+=step;
 utils.css(oBox,"left",curLeft);
 timer = window.setTimeout(move,10)
 }
 move();

 </script>
</body>
</html>

一直以为动画效果是用setInterval来执行的。也比较好理解,一直执行下去,直到条件再次出现时清除setInterval。

这几天看了用setTimeout来做动画的例子,起初我是不理解的。动画和延迟执行有毛关系(其实是有关系的,后面会讲到。)代码是这样子的:

for ( i=0; i<200; i++){
 setTimeout ( function(){
 var left = el.style.left ? el.style.left : 0;
 left = parseInt( left ) +1;
 el.style.left = left+ "px";
 } , i );
}

代码就是以上样子的啦。我当时所不理解的是,为什么每次都要延迟的时间递增?为什么刚好到200px就停止执行了,i明明是时间,为什么和距离的值一样?

首先回答第一个问题,

for循环其实是动画的关键,仅仅执行setInterval 只会使物体位移一次。可以先分析代码:当i为0的时候,物体移动1px,当 i 为1的时候,left为2px, 延迟了1毫秒。。。。当i为99的时候,left为100px,延迟99毫秒执行。。。当i为199的时候,left为200px,延迟199毫秒执行。。。延迟的时间与物体的移动呈递增状态。

所以,从单方面看,延迟和动画没有必然关系。但是从连续的角度(for循环起了作用),根据我们的视觉暂留,就形成了动画,用张图来表示:

1756.png

循环起来,就形成了动画效果。

第二个问题:

当动画结束时,恰巧距离是200,这和i有什么关系呢?其实没有直接关系。只是当i自增1的时候,left也恰好是自增i,如果将left的值每次都加3,那么看到的就是不一样的结果了。(最终应该是600,还是有关系的,因为循环了200次)。

热心网友 时间:2022-04-20 08:58

setTimeout或setInterval 只是实现“循环”调用一个函数,,,,,,每调用一次函数,索引递增,更换相应的索引的图片

~
~
~
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
路由器怎么进192.168.2.1? 2016年二套房最新优惠政策 ps如何快速抠图复杂背景ps如何快速抠图 天龙八部,什么是超级双线 天龙八部手游 天龙八部各区装备评分排行榜有哪些? 天龙八部,那个老区人最多,我想和朋友一起回老区, 中专英语专业可以考什么证 原神3.4新怪物汇总 原神4.3深渊怪物都有哪些-原神4.3深渊怪物时间线介绍 原神3.4新增怪物有哪些 原神3.4新怪物汇总介绍 光谱仪器有哪些呢? vivo Y3手机为什么会突然黑屏并且毫无反应还不可以重启就连关机也不可以? 去台湾自由行手续都需要什么? 好听的女孩名字~ 字画应挂在家什么位置 中国画按内容分? 中国国画主要描绘的内容是哪些? 字画上的内容一般是什麼 床头放剪刀,是辟邪还是招杀气 EXCEL表格中有没有办法将名字设成编号如: 家门口为什么会挂一个镜子和剪刀? 大门上挂剪刀和镜子是什么意思 请问剪刀放床头哪里是辟邪的? 辟邪的东西比如剪刀、可以拿出来随便剪东西吗? 请问普通的剪刀是可以辟邪那么普通的裁纸刀也算利器(刀具)放在枕头底下能镇邪吗谢谢 脖子上戴剪刀是什么意思?戴算盘是什么意思? QQ把自己加成好友算不算共同好友? 向窗外丢把刀或剪刀能避邪吗? 木匠的墨斗、玉石、五尺和裁缝的剪刀都可用来辟邪这是真的吗? 大夫,您好。请问,马蹄足内翻属于什么病啊?挂号应该挂哪个科?_马蹄足内翻 请问一下为什么vivoy3t下载完更新包后重新启动完却开不了机总是有个机器在哪里上面有个红色的三角 vivo y3t手机root后无法开机 vivoy3t一直在re模式怎么办 电子表格下面的数字栏计数值及求和不显示? 德邦物流异常签收后还能退货吗 德邦物流异常签收一般多长时间能理陪? 德邦物流异常签收会不会影响代收货款? 德邦物流理赔技巧 为什么不好~~! 德邦物理处理异常签收的时间? 有人说不好,为什么不好? 德邦物流为什么说不能异常签收? 叹气为什么不好? 说脏话好吗?为什么不好?为什么不好? 德邦把我的货运坏了,我没签收,要先签收才能做异常签收吗,然后赔偿?我怕签收后不认账,有经验者 为什么人们常说不好? 德邦物流赔偿问题 我的学习为什么不好? 我心情为什么不好? 心情为什么不好呢?
  • 焦点

最新推荐

猜你喜欢

热门推荐