轮播图最后一张图到第一张图的切换问题。

1HTML<body>

<div>
    <ul class="pic">
          <li class="one"></li>
          <li class="two"></li>
          <li class="three"></li>
          <li class="four"></li>
          <li class="five"></li>
    </ul>
</div>
<button id="btn">btn</button>

</body>
2CSS*{

padding: 0;
margin: 0;
list-style: none;

}
body{

height: 5000px

}
div{

width: 400px;
height: 400px;
margin: 0 auto;
overflow: hidden;
position: relative;

}
.pic li{

display: inline-block;
float: left;
height: 100%;
width: 400px;

}
.pic{

transition: all 1s;
font-size: 0;
height: 400px;
width: 2000px;
position: absolute;
left: 0

}
.one{

background: url(../csstexting/1.jpg)no-repeat;
background-size: 400px 400px;

}
.two{

background: url(../csstexting/2.jpg)no-repeat;
background-size: 400px 400px;

}
.three{

background: url(../csstexting/3.jpg)no-repeat;
background-size: 400px 400px;

}
.four{

background: url(../csstexting/4.jpg)no-repeat;
background-size: 400px 400px;

}
.five{

background: url(../csstexting/1.jpg)no-repeat;
background-size: 400px 400px;

}
3JQUERY$(document).ready(function(){

var cindex = 0;
$('#btn').click(function(){
    cindex++;
    if(cindex>4){
        cindex = 1;
        $('.pic').css("left","0px");
    }
    $('.pic').css("left",cindex*400*-1 + "px")
})

})
想问一下我这么写最后一张图(也就是和第一张图一样)切换到正数第二章图的时候。图片会从右到左的方式切换到第二张图。请问怎么让图片有看上去像从第一张图切换到第二张图的那种效果啊

阅读 10.4k
3 个回答

其实要复制第一张到最后面,所以如果你的图片是 3 张,实际上有 4 张图片参与轮播。

clipboard.png

第三张结束后,继续滑动,其实是显示第四张,但是第四张和第一张是一样的,所以看起来是从第三张滑动到第一张。

但是第四张后面没有了,如果要继续显示第二张,就必须在“第四张“结束滑动后立刻将容器的位置重置,类似下面这样。

clipboard.png

然后再继续滑动,就是显示第二张,这样就实现了无限。

在切换的时候给你要切换的图片加个过渡,到最后一张的图的时候其实跟你第一张相同,不加效果切回第一张,眼睛是看不出来其中的变换的,这时你再点其实又是从第一张开始切换,不知道你明白没有,没有给你写个列子。

因为你的这个是ul距离的移动,一个轮回下来,ul肯定会重新开始,所以最后一张到第一张切换就有问题了 ;
我改了一下,用li的偏移,应该是满足你的需求了 你看看

图片描述

css代码 也来一波
<style>

    body{

height: 5000px
}
div{

width: 400px;
height: 400px;
margin: 0 auto;
overflow: hidden;
position: relative;
}
.pic li{
transition: all 1s;
display: inline-block;
float: left;
height: 100%;
width: 400px;
}
.pic{

transition: all 1s;
font-size: 0;
height: 400px;
width: 2000px;
position: absolute;
left: 0
}
.one{

background: url(1.png)no-repeat;
background-size: 400px 400px;
}
.two{

background: url(2.png)no-repeat;
background-size: 400px 400px;
}
.three{

background: url(3.png)no-repeat;
background-size: 400px 400px;
}
.four{

background: url(4.png)no-repeat;
background-size: 400px 400px;
}
.five{

background: url(1.png)no-repeat;
background-size: 400px 400px;
}

</style>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏