如何利用纯css实现图片轮播


本文摘自PHP中文网,作者V,侵删。

实现思路:

(推荐学习:css快速入门)

  • 准备相同大小的多个图片

  • 将要展示图片横排放在一个图片容器里面

  • 在图片容器外再加一个展示容器,展示容器大小为图片大小

  • 给图片容器添加自定义动画,在动画不同阶段设置递增的偏移值

注意事项:

  • 动画效果分为切换和停留两部分

  • 自定义动画阶段与图片数量相关

  • 动画各阶段偏移值与图片大小相关

  • 本文中示例最后一个图片到第一个图片没有切换效果,一个思路是可以由最后一个图片再挨个切换到第一个图片

HTML代码:

1

2

3

4

5

6

7

<div id="container">

    <div id="photo">

        <img src="1.png" />

        <img src="2.png" />

        <img src="3.png" />

    </div>

</div>

代码解析:

这里创建了三个 img 元素,img 元素外面是图片容器,图片容器外面是展示容器。

css代码:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

#container {

    width: 400px;

    height: 300px;

    overflow: hidden;

}

  

#photo {

    width: 1200px;

    animation: switch 5s ease-out infinite;

}

  

#photo > img {

    float: left;

    width: 400px;

    height: 300px;

}

  

@keyframes switch {

    0%, 25% {

        margin-left: 0;

    }

    35%, 60% {

        margin-left: -400px;

    }

    70%, 100% {

        margin-left: -800px;

    }

}

代码解析:

  • 展示容器大小和图片大小一致

  • 图片添加 float 效果,不用考虑麻烦的 margin 问题

  • 由于示例只有三个图片,所以添加了三个动画阶段,每一阶段都是通过设置递增的 margin-left 值达到切换的效果

  • 设置的动画阶段(如:35%~60%)是动画停留部分,和上一阶段空余时间(如25%~35%)即为动画切换部分,各部分时间长短需要自己把控

以上就是如何利用纯css实现图片轮播的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

css是什么含义

css svg不显示不出来怎么办

css如何设置背景图片不平铺

css page-break-after属性怎么用

css如何禁止复制

利用css变量来提高灵巧布局效率的小技巧

浅谈css grid比bootstrap更适合创建布局的原因

html怎么加载css

css border-image-width属性怎么用

深入了解css中的选择器

更多相关阅读请进入《css》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...