1、首先我们创建一个简单的项目,如图所示包括html,css和img三个。
2、这里是html文件,引入css和html代码文件,如图所示。
3、这里是css文件代码,上面是div和图片显示的效果代码,后面是动画效果。
4、这里是事件,这里定义了四个时间段的状态,兼容了ie的。
5、如图所示这里是效果图,会根据时间轮播显示下一张图片 了。
轮播图是互联网最常见到的一个元素,不论是PC端还是移动端,或者是APP,我们都会经常遇到,对于前端工程师来说,轮播图的实现都是前端开发中的基本操作,实现起来并没有那么困难。
前端工程师实现轮播图有好多种方式,有的喜欢使用自己编写的脚本,有的喜欢使用JQurey,有的喜欢使用swiper插件,不过很少有人会单纯的使用CSS来实现轮播图。
使用CSS实现轮播图操作主要使用了伪类:checked,并将lable指向对应的input的id,来实现这个轮播的功能。
首先我们要有一个容器用来防止轮播图,这里使用的p来代替,HTML页面的代码如下:
轮播图CSS样式,这里用的ul-p,需要的话可以再写代码时用图片表示,这里仅仅是简要的表示一下:
label标签用来放置按钮,通过label来控制轮播图的切换,关于其具体的样式在实际开发中进行调整即可。
最后就是实现css轮播图的核心,主要通过使用控制控制margin值来实现轮播的而效果。
animation-name: 规定需要绑定到选择器的 keyframe 名称。animation-duration: 规定完成动画所花费的时间,以秒或毫秒计。
animation-timing-function: 规定动画的速度曲线。
animation-delay:规定在动画开始之前的延迟。
animation-iteration-count: 规定动画应该播放的次数。
animation-direction:规定是否应该轮流反向播放动画。
@keyframes{
}
给每个动画及暂停分配时间,按照总时间的百分比分配;
以三张图片为例制作轮播图,若将最后的数值设置为100%,出现问题在于最后一张到第一张的切换没有动画;尝试给最后一张图片到第一张图片的动画时间,但是中间的切换效果是从最后一张向右滑动直到显示出第一张图,其效果反人类,不美观;但是,通过尝试在最后的一张图片后面在添加一张与第一张相同的图片,可实现循环的效果;
方法与一中大致相同,唯一更改的地方是css3的@keyframes规则里面的内容
若只将要显示的三张图片导入,会出现最后一张图片到第一张图片没有动画效果;通过尝试在最后的一张图片后面在添加一张与第一张相同的图片,可实现循环的效果;
问题在于图片一直处于切换状态,中间没有停顿;