纯CSS实现轮播图效果,你不知道的CSS3黑科技
前言
轮播图已经是一个很常见的东西,尤其是在各大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来说减少页面阻塞程度,效果更好。
看完后你有过这样的思考不?
为什么这样能实现?
能不能像js那样循环播放?从第一个图可以跳到最后一个图后面
你是否掌握了这样的思路?
web前端/H5/javascript学习群:250777811
欢迎关注此公众号→【web前端EDU】跟大佬一起学前端!欢迎大家留言讨论一起转发
纯CSS实现轮播图效果,你不知道的CSS3黑科技相关推荐
- c语言实现图片轮播,纯css实现轮播图
轮播图的实现原理其实是比较简单的 举个例子 main的宽度是100px div-main的宽度是500px 我们用js控制div-main往左或往右移动,这样就实现了轮播,简单把 好了,先介绍个 cs ...
- 怎样实现banner自动播放html,纯css实现轮播图banner自动轮换效果
话不多说 直接上代码 * { margin: 0; padding: 0; } .container { margin:300px auto; height: 400px; width: 1146px ...
- html中轮播图跳转,纯 CSS 实现轮播图
大家好,我是 Steven. 今集我们会尝试只用 HTML 和 CSS,实现基础的轮播图效果,当然会有一些功能的缺失,例如不能自动跳转,但我们来看看用 CSS 可以实现到多少. HTML 的部分 打开 ...
- HTML+CSS实现轮播图效果
HTML+CSS实现轮播图效果 效果图如下(想要源码或者感兴趣的小伙伴可以评论区留言哦!) HTML部分源代码如下: <!DOCTYPE html> <html ><he ...
- php轮播效果代码,CSS实现轮播图效果(附代码)
CSS实现轮播图效果(附代码) 理论基础 CSS3 animation 属性和 @keyframes 规则 主体思想 1.准备相同大小的多个图片 2.将要展示图片横排放在一个图片容器里面 3.在图片容 ...
- 纯CSS实现轮播图(结合动画)
图片自动切换实现原理:使用一个div(class="out")并设置溢出隐藏保证每次只显示一张,在内部设置另一个div.outer包裹所有的图片,图片均水平排列,包裹图片的div使 ...
- 纯csss实现轮播图效果
1.先看效果,鼠标移入到图片,暂停轮播. 2.上码 <!DOCTYPE html> <html lang="en"> <head><met ...
- CSS实现轮播图效果以及遮罩效果
效果: 图片来源鱼皮的b站视频 默认效果 鼠标经过 动图 源码 <!DOCTYPE html> <html lang="en"><head>&l ...
- 纯css3实现无缝轮播图效果
主要就是利用css3中的动画了,看完整实现代码如下: <!DOCTYPE html> <html lang="en"> <head><me ...
最新文章
- centos和ubuntu安装卸载软件(rpm/dpkg)
- python及其应用_Python及其应用部分答案
- 实验吧— Crypto Write up(一)
- VTK:相互作用之PickableOff
- VS2015 代码左缩进
- 基于c语言实现bp算法,基于BP网络的自学习算法和C语言实现
- python字符串代码对象_Python源码剖析 - Python中的字符串对象
- string的各种函数(系统学习)
- 17 行代码实现的简易 Javascript 字符串模板
- 对比罗小平先生的《delphi精要》和李维先生的《inside VCL》
- 【python】命令行参数argparse用法详解
- poj2513 Colored Sticks【欧拉迹+并查集+字典树】
- pchunter驱动加载失败_电脑开机显示自动修复失败无法进入系统,解决方法
- 昂达平板不能开机刷机_手把手教你平板电脑刷机方法
- DELL服务器运行硬件检测
- 使用WPF技术模拟手机界面
- url中出现“%22”等如何处理?如何判断url中是否有“%22等”?如何获取当前网址?传入多个参数在url上? encodeURL和(js)
- html和css学习课件(新版)
- 微信小程序项目实例——摇色子
- STM32F1 HAL库读写SD卡的操作要点