只用CSS跟HTML做出无缝衔接的轮播图效果

首先,想要完成以上所说的效果,我们就需要用到CSS3的 animation 动画属性。

接下来就开始实现效果:

首先,在HTML里面放入需要轮播的图片:

 这里可能就要问了,为什么用JavaScript只需在末尾多添加一张图片就行,我这里却多添加了三张呢?

别急,等到后面我会另外说明的。

回归效果实现,HTML把需要的效果完成后,接下来就先把样式解决了:

这是完成样式后在浏览器的效果:

那么静态效果有了,怎么让它动起来呢?

那就要用到我开头所说的CSS3的 animation 属性了

代码如下:

把上面代码补上后,轮播图效果可以说就出来了。

但是,我上面的那个问题来了,我为什么要多放三张图片呢?

首先给大家看没有那三张图片的效果:

没有那三张图片,那么代码运行到后面,就会出现这种空白的情况,这时就有人会说,那我把上面设置动画里的margin-left改成一到最后一张就跳回到开头那张不就行了?

诶,还真不行,因为你这样做出来的效果是最后一张一出现,页面会明显的停顿一下然后就立马跳转到第一张图片。

那如果跟JavaScript一样在后面添加一张开头图片呢?其实这样的效果跟第一个做法一样,会停顿一下然后直接跳转到第一张,而我们要完成的效果是无缝衔接。

那这时后面那三张图片的作用就来了,因为我们上面设置动画执行到最后的margin-left是 -1500px嘛,但是我们图片设置的宽度是300px,也就是说这个动画执行到最后其实只会隐藏掉前面那五张图片然后就会出现空白(在没有那三张图片的情况下),而这是那三张图片就可以补上那空白,又因为我们设置的是重复执行动画,所以当那五张图片被隐藏掉后margin-left就会回到0px,但是我们有那三张图片在,所以当margin-left回到0时,前面的图片刚好和这三张图片重合了,所以就完成了无缝衔接。具体可以看我代码实现的效果。

  • 11
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值