HTML纯CSS3动画轮播图(详解)
网页开发初学者学习时,一般都是先编写静态的页面,并没有JS、JQ等,在学习CSS3 时可以利用animation 属性制作一个简单的纯CSS3轮播图
基础知识
废话不多说,先来复习一下CSS的animation 属性:
除了这 9 个属性之外,动画效果还有一个重要的属性,就是关键帧属性:@keyframes。 它的作用是声明一个动画,然后在 animation 调用关键帧声明的动画。
接下来详解9个属性的属性值:(已经熟悉animation的可以不用看,这里只是方便小白更好的理解接下来的代码):
1.animation-name:myani;
2.animation-duration:
用来设置动画的时间: animation-duration:1s
3.animation-timing-function
//设置缓动
如:animation-timing-function: ease-in;
4.animation-delay
设置延迟时间 :animation-delay: 1s;
5.animation-iteration-count
//设置循环次数
如:animation-iteration-count:infinte
6.animation-direction
//设置缓动方向交替
如:animation-diretion:alternate
7.animation-play-state
//设置停止播放动画
animation-play-state: paused;
8.animation-fill-mode
//设置结束后不在返回
如:animation-fill-mode: forwards;
//both 需要结合,次数和播放方向 animation-iteration-count: 4; animation-direction: alternate;
最后为了兼容旧版本,需要加上相应的浏览器前缀:
//兼容完整版,Opera 在这个属性上加入 webkit,所以没有-o-
-webkit-animation: myani 1s ease 2 alternate 0s both;
-moz-animation: myani 1s ease 2 alternate 0s both;
-ms-animation: myani 1s ease 2 alternate 0s both; transition: all 1s ease 0s;
//@keyframes 也需要加上前缀
@-webkit-keyframes myani {…}
@-moz-keyframes myani {…}
@-o-keyframes myani {…}
@-ms-keyframes myani {…} keyframes myani {…}
原理图
主要将li设置为左浮动float:left;将图片放入li中,注意每个li的宽度和高度都为图片的宽高,接着设置ul的宽高,宽度为所有图片的总宽,高度即为一张图片的高度,接着再将放置图片的div盒子宽度高度均为图片的宽高,再接着设置overflow:hidden;这样子只有显示一张图片的大小了,最后设置动画效果,用margin-left 设置,一次移动 (-)800px;便移动一张图片,代码如下:
代码块
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
* {
margin: 0;
padding: 0;
background: silver;
}
/*初始化页面*/
.CarouselBox {
width: 800px;
height: 600px;
margin: 100px auto;
overflow: hidden;
}
/*设置放置轮播图的盒子*/
li {
width: 800px;
height: 600px;
float: left;
list-style: none;
}
/*对放置图片的li进行设置*/
/*设置动画的主要属性*/
ul {
width: 4800px;
height: 600px;
animation: myani 10s 0s alternate ease-in-out infinite;
-ms-animation: myani 10s 0s alternate ease-in-out infinite;
-moz-animation: myani 10s 0s alternate ease-in-out infinite;
-webkit-animation: myani 10s 0s alternate ease-in-out infinite;
}
/* 对动画的关键帧进行设置*/
@keyframes myani {
0% {
margin-left: 0px;
}
20% {
margin-left: -800px;
}
40% {
margin-left: -1600px;
}
60% {
margin-left: -2400px;
}
80% {
margin-left: -3200px;
}
100% {
margin-left: -4000px;
}
}
/*对动画的关键帧进行兼容处理*/
@-webkit-keyframes myani {
0% {
margin-left: 0px;
}
20% {
margin-left: -800px;
}
40% {
margin-left: -1600px;
}
60% {
margin-left: -2400px;
}
80% {
margin-left: -3200px;
}
100% {
margin-left: -4000px;
}
}
@-moz-keyframes myani {
0% {
margin-left: 0px;
}
20% {
margin-left: -800px;
}
40% {
margin-left: -1600px;
}
60% {
margin-left: -2400px;
}
80% {
margin-left: -3200px;
}
100% {
margin-left: -4000px;
}
}
@-ms-keyframes myani {
0% {
margin-left: 0px;
}
20% {
margin-left: -800px;
}
40% {
margin-left: -1600px;
}
60% {
margin-left: -2400px;
}
80% {
margin-left: -3200px;
}
100% {
margin-left: -4000px;
}
}
</style>
</head>
<body>
<div class="CarouselBox">
<ul>
<li>
<a href="##"><img src="Image/1 (1).jpg" width="800" height="600"></a>
</li>
<li>
<a href="##"><img src="Image/1 (2).jpg" width="800" height="600"></a>
</li>
<li>
<a href="##"><img src="Image/1 (3).jpg" width="800" height="600"></a>
</li>
<li>
<a href="##"><img src="Image/1 (4).jpg" width="800" height="600"></a>
</li>
<li>
<a href="##"><img src="Image/1 (5).jpg" width="800" height="600"></a>
</li>
<li>
<a href="##"><img src="Image/1 (6).jpg" width="800" height="600"></a>
</li>
</ul>
</div>
</body>
</html>
效果图
好了,简单的纯CSS动画的轮播图就到这里了
更多相关技术内容咨询欢迎前往并持续关注六星社区了解详情。
程序员编程交流QQ群:805358732
如果你想用Python开辟副业赚钱,但不熟悉爬虫与反爬虫技术,没有接单途径,也缺乏兼职经验
关注下方微信公众号:Python编程学习圈,获取价值999元全套Python入门到进阶的学习资料以及教程,还有Python技术交流群一起交流学习哦。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!