前言

轮播图已经是一个很常见的东西,尤其是在各大App的首页顶部栏,经常会轮番显示不同的图片。

一提到轮播图如何实现时,很多人的第一反应就是使用Javascript的定时器,当然这种方法是可以实现的。不过就是有些繁琐,今天这篇文章我们来看看如何不用Javascript,而使用纯CSS代码去实现轮播图吧。

这篇文章的所有代码我都放在了群文件了,感兴趣的同学可以去下载看看。

CSS

实现效果

首先我们来看看只使用CSS实现的轮播图效果。

实现效果图

具体分析

看到上述的实现效果后,我们来具体分析下页面的构成。

  • 页面在布局上首先要有5张图片,图片固定宽度。

  • 每张图片对应一个标题,标题通过ul>li实现,事先算好宽度,跟随图片一起滚动。

  • 下边有个1,2,3,4,5表示图片顺序的索引,鼠标放上去后会显示对应的图片。

HTML页面

接下来我们通过代码层面去看看整个效果是如何实现的。

首先来看看HTML页面的实现,代码中都有每个区域的描述。

HTML页面

CSS部分

实现这个效果主要是通过CSS代码的,其代码量比较大,我们分开来看。

  • 外层容器

对于最外层容器我们设置绝对定位,方便图片标题子元素的定位。

外层容器

  • 图片标题

对于图片的标题我们也采用绝对定位,并且让标题横向一行展示,方便在动画的时候直接横向滚动。

得到的代码如下所示。

图片标题

  • 图片与图片容器

接下来是设置图片容器属性以及图片的基本大小。

图片容器也采用绝对定位,宽度可以动态设置,根据图片数量计算。每张图片设置宽度与高度,得到的代码如下。

图片与图片容器

  • 图片动画效果

然后设置图片的动画效果,对于任意的图片都有进入和静止两个状态,中间的效果可以任意定制。

在这里,中间效果设置成5%的间隔,其他时间在进行位置的切换,因为图片是处于水平分布,通过设置margin-left的值为负数进行偏移即可。

图片动画效果

  • 数字索引的基本属性

对于下面的数字图标也是通过基本的CSS属性进行设置的,包括宽高,行高,透明度等等。

在鼠标移动到对应的数字上后,数字会显示不同的颜色。而且在鼠标停留在数字上后,动画效果会暂停。

数字索引基本属性

  • 数字索引的偏移量

因为数字是水平方向展示的,因此要设定每个数字的水平偏移量。

数字水平偏移量

  • 鼠标停在数字上的动画效果

然后就是处理鼠标停留在数字上的动画效果,因为每张图片对应特定的数字,需要计算出每次的动画开始位置和结束位置。

鼠标停在数字上的动画效果

  • 动画效果赋予指定的数字

最后一步就是将定义的动画效果赋予指定的数字上,每个数字都有特定的id。得到的代码如下。

动画效果赋予指定的数字

至此所有步骤完成了,就可以得到文章开始的动画效果了。

结束语

这篇文章完全通过CSS实现了一个轮播图的效果,相比于使用JS来说减少页面阻塞程度,效果更好。

看完后你有过这样的思考不?

  1. 为什么这样能实现?

  2. 能不能像js那样循环播放?从第一个图可以跳到最后一个图后面

  3. 你是否掌握了这样的思路?


web前端/H5/javascript学习群:250777811

欢迎关注此公众号→【web前端EDU】跟大佬一起学前端!欢迎大家留言讨论一起转发

纯CSS实现轮播图效果,你不知道的CSS3黑科技相关推荐

  1. c语言实现图片轮播,纯css实现轮播图

    轮播图的实现原理其实是比较简单的 举个例子 main的宽度是100px div-main的宽度是500px 我们用js控制div-main往左或往右移动,这样就实现了轮播,简单把 好了,先介绍个 cs ...

  2. 怎样实现banner自动播放html,纯css实现轮播图banner自动轮换效果

    话不多说 直接上代码 * { margin: 0; padding: 0; } .container { margin:300px auto; height: 400px; width: 1146px ...

  3. html中轮播图跳转,纯 CSS 实现轮播图

    大家好,我是 Steven. 今集我们会尝试只用 HTML 和 CSS,实现基础的轮播图效果,当然会有一些功能的缺失,例如不能自动跳转,但我们来看看用 CSS 可以实现到多少. HTML 的部分 打开 ...

  4. HTML+CSS实现轮播图效果

    HTML+CSS实现轮播图效果 效果图如下(想要源码或者感兴趣的小伙伴可以评论区留言哦!) HTML部分源代码如下: <!DOCTYPE html> <html ><he ...

  5. php轮播效果代码,CSS实现轮播图效果(附代码)

    CSS实现轮播图效果(附代码) 理论基础 CSS3 animation 属性和 @keyframes 规则 主体思想 1.准备相同大小的多个图片 2.将要展示图片横排放在一个图片容器里面 3.在图片容 ...

  6. 纯CSS实现轮播图(结合动画)

    图片自动切换实现原理:使用一个div(class="out")并设置溢出隐藏保证每次只显示一张,在内部设置另一个div.outer包裹所有的图片,图片均水平排列,包裹图片的div使 ...

  7. 纯csss实现轮播图效果

    1.先看效果,鼠标移入到图片,暂停轮播. 2.上码 <!DOCTYPE html> <html lang="en"> <head><met ...

  8. CSS实现轮播图效果以及遮罩效果

    效果: 图片来源鱼皮的b站视频 默认效果 鼠标经过 动图 源码 <!DOCTYPE html> <html lang="en"><head>&l ...

  9. 纯css3实现无缝轮播图效果

    主要就是利用css3中的动画了,看完整实现代码如下: <!DOCTYPE html> <html lang="en"> <head><me ...

最新文章

  1. centos和ubuntu安装卸载软件(rpm/dpkg)
  2. python及其应用_Python及其应用部分答案
  3. 实验吧— Crypto Write up(一)
  4. VTK:相互作用之PickableOff
  5. VS2015 代码左缩进
  6. 基于c语言实现bp算法,基于BP网络的自学习算法和C语言实现
  7. python字符串代码对象_Python源码剖析 - Python中的字符串对象
  8. string的各种函数(系统学习)
  9. 17 行代码实现的简易 Javascript 字符串模板
  10. 对比罗小平先生的《delphi精要》和李维先生的《inside VCL》
  11. 【python】命令行参数argparse用法详解
  12. poj2513 Colored Sticks【欧拉迹+并查集+字典树】
  13. pchunter驱动加载失败_电脑开机显示自动修复失败无法进入系统,解决方法
  14. 昂达平板不能开机刷机_手把手教你平板电脑刷机方法
  15. DELL服务器运行硬件检测
  16. 使用WPF技术模拟手机界面
  17. url中出现“%22”等如何处理?如何判断url中是否有“%22等”?如何获取当前网址?传入多个参数在url上? encodeURL和(js)
  18. html和css学习课件(新版)
  19. 微信小程序项目实例——摇色子
  20. STM32F1 HAL库读写SD卡的操作要点

热门文章

  1. ORACLE 求和(多列)
  2. 壹佰企微助手v3.0.43
  3. 华为QinQ简单配置
  4. 【htpwdScan 是一个HTTP暴力破解、撞库测试工具。】
  5. 国人被清朝误导300年
  6. 关于编译Boost库时出现typedef unused的warning的解决办法
  7. 万字教你入门数据结构(C语言)二叉树
  8. 这可能是全网最详细的python安装教程(windows)
  9. 【并行算法】并行计算的可扩展性分析
  10. 一文带你全面深入了解TreeMap