延时器

延时器

leftbtn.onclick=function(){
            if(idx==0){
                list.style.transition='none';
                list.style.left=-5*650+'px';
                setTimeout(function(){
                    list.style.transition='left .5s ease 0s';
                    idx=4;
                    list.style.left=-idx*650+'px'
                },0)
            }else{
                idx--;
                list.style.left=-idx*650+'px';
            }
        }

setTimeout里面的list.style.left的值为什么是负数

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕星星 2023-01-12 13:00:33

同学你好,ul相对于div绝对定位,初始位置left为0

https://img1.sycdn.imooc.com//climg/63bf930909900dbb11430303.jpg

ul向左移动left为负值,ul向右移动left为正值。而轮播是无缝的,即使ul向右移动,也会有图片展示,不是空白部分,所以left始终为负值。初始位置0或者-0都没问题。

祝学习愉快!

  • 提问者 慕芸芸 #1

    在延时器前面的那行代码上,图片就到了最后一张,然后延时器内图片向右移动一张,所以延时器内的left值不应该是正值吗?

    2023-01-12 13:07:25
  • 好帮手慕星星 回复 提问者 慕芸芸 #2

    前面老师回答的

    https://img1.sycdn.imooc.com//climg/63bf99dd09dab9c803660029.jpg

    是针对于自画图中ul初始位置来说的,ul初始向左移动,左侧超出div,left为负值。ul初始向右移动,留有空白部分,left为正值。

    而轮播图片即使向右移动(展示的不是第一张图片),ul相对于div来就是在左侧,应该是负值。这个值是给ul的,要看ul相对于div的位置。自己再理解下。

    2023-01-12 13:31:48
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师