纯CSS3实现轮播图
前言
纯css3实现的轮播图效果,和JavaScript控制的相比,简单高效了很多,但是功能也更加单一,只有轮播不能手动切换。
用什么实现的呢?页面布局 + animation动画
HTML部分
<div class="container">
<div class="title-container">
<h1>纯CSS3轮播图</h1>
</div>
<div class="slide-box">
<ul>
<li class="slide-item slide1">
<a href="#">
<img src="data:images/img-1.jpg" alt="">
<div class="tooltip">
生活
</div>
</a>
</li>
<li class="slide-item slide2">
<a href="#">
<img src="data:images/img-2.jpg" alt="">
<div class="tooltip">
热情
</div>
</a>
</li>
<li class="slide-item slide3">
<a href="#">
<img src="data:images/img-3.jpg" alt="">
<div class="tooltip">
乐观
</div>
</a>
</li>
<li class="slide-item slide4">
<a href="#">
<img src="data:images/img-4.jpg" alt="">
<div class="tooltip">
美好
</div>
</a>
</li>
<li class="slide-item slide5">
<a href="#">
<img src="data:images/img-5.jpg" alt="">
<div class="tooltip">
意义
</div>
</a>
</li>
</ul>
<div class="progress"> </div>
</div>
</div>
</body>
html部分也还是那些东西,容器+多张轮播图子项
布局部分
/*reset*/
html,body,div,ul,li,img,h1,a{
margin:;
padding:;
} ul{
list-style: none;
} /*slide style*/ html,body{
width: 100%;
height: 100%;
} body{
background: url('./../images/bg.png') repeat;
} .container{
width: 1000px;
height: 100%;
margin: 0 auto;
} .container .title-container{
width: 800px;
height: 100px;
line-height: 100px;
margin: 20px auto;
text-align: center;
} .slide-box{
position: relative;
width: 800px;
height: 533px;
margin: 0 auto;
border:5px solid #eaeaea;
-webkit-box-shadow:1px 1px 5px rgba(0,0,0,0.7);
box-shadow:1px 1px 5px rgba(0,0,0,0.7);
} .slide-box ul{
position: relative;
width: 100%;
height: 100%;
overflow: hidden;
} .slide-box ul li{
position: absolute;
top:;
left:;
width: 100%;
height: 100%;
cursor: pointer;
} .slide-box ul li .tooltip{
position: absolute;
left: 50px;
top: -40px;
height: 40px;
width: 100px;
text-align: center;
background-color: rgba(0,0,0,0.7);
color: #fff;
line-height: 40px;
-webkit-transition: all 0.3s ease-in-out;
transition: all 0.3s ease-in-out;
} .slide-box ul li:hover .tooltip{
top: 2px;
z-index:;
}
1、容器溢出隐藏
2、轮播子项绝对定位
轮播动画部分
这部分才是本文的重点。
用纯css3实现轮播,肯定要无限循环使用animation动画,而且需要单独控制每个子项的动画效果,而其整体效果是完美的轮播效果。
子项使用的是绝对定位,需实现的轮播效果是从左至右,所以可以控制left的值达到展示和隐藏(定位到容器之外即隐藏)及滑动效果。先实现第一个子项
.slide-box ul li.slide1{
-webkit-animation: slide1 25s linear infinite;
animation: slide1 25s linear infinite;
}
@-webkit-keyframes slide1 {
0% {
left:;
opacity:;
}
16% {
left:;
opacity:;
}
20% {
left: 800px;
opacity:;
z-index:;
}
21% {
left: -800px;
opacity:;
z-index:;
}
95% {
left: -800px;
opacity:;
z-index:;
}
96% {
left: -800px;
opacity:;
z-index:;
}
100% {
left:;
opacity:;
z-index:;
}
}
设计轮播周期为25s,所以每个子项有5s的展示和移动时间。子项一的动画效果:0-4s展示,4-5s向右方滑动至容器外隐藏,之后迅速滑倒容器左边外隐藏(此时修改了z-index,所以不会影响到正在展示的子项),剩下的时间就是在左边等待下次滑动及展示了。第二个子项的动画效果需与第一个子项契合,特别在时间上,这样整体的效果才会好。如下:
.slide-box ul li.slide2{
-webkit-animation: slide2 25s linear infinite;
animation: slide2 25s linear infinite;
}
@-webkit-keyframes slide2 {
0% {
left: -800px;
opacity:;
z-index:;
}
16% {
left: -800px;
opacity:;
z-index:;
}
20% {
left:;
opacity:;
z-index:;
}
36% {
left:;
opacity:;
z-index:;
}
40% {
left: 800px;
opacity:;
z-index:;
}
41% {
left: -800px;
opacity:;
z-index:;
}
100% {
left: -800px;
opacity:;
z-index:;
}
}
第二个子项 1-4s在容器左边外等待,4-5s向右滑出展示(此时第一个子项向左滑出隐藏),5-9s展示 9-10s向左滑出隐藏。
同理剩下的子项,依次顺延调整好动画,整体的效果就会非常流畅。
进度条动画
因展示时间较长4s,所以可以加入进度条,交互体验会更加好。HTML中的div.progress即是进度条的结构。样式如下:
.slide-box .progress{
position: absolute;
bottom:;
left:;
height: 5px;
width:;
background-color: rgba(0,0,0,0.7);
-webkit-animation: progress 5s linear infinite;
animation: progress 5s linear infinite;
z-index:;
}
@-webkit-keyframes progress {
0%{
width:;
}
80%{
width: 100%;
}
81%{
width:;
}
100%{
width:;
}
}
通过控制宽度来标识进度。
hover 暂停动画
若需要鼠标悬停时暂停动画,使用 animation-play-state: paused 控制即可
.slide-box:hover ul li,
.slide-box:hover .progress
{
-webkit-animation-play-state: paused;
animation-play-state: paused;
}
结语
虽然功能简单,但是纯css3实现的效率还是很高的,效果也不错---------见 demo
纯CSS3实现轮播图的更多相关文章
- CSS3实现轮播图效果
CSS3实现轮播图主要是由css:background-position和css3:animation实现.且实现此轮播需要一张四个图横着相连的图片. 注(Internet Explorer 10.F ...
- css3实现轮播图
css3动画属性简写: animation: name duration timing-function delay iteration-count direction fill-mode ...
- 纯CSS实现轮播图效果,你不知道的CSS3黑科技
前言 轮播图已经是一个很常见的东西,尤其是在各大App的首页顶部栏,经常会轮番显示不同的图片. 一提到轮播图如何实现时,很多人的第一反应就是使用Javascript的定时器,当然这种方法是可以实现的. ...
- 拓展-教你手把手用纯CSS写轮播图
先看成品图[示例网址:][1] [1]: https://huruji.github.io/css-imitate-js/slider/index.html一.随便说几句####css3动画效果的强大 ...
- 纯css实现轮播图
轮播图的实现原理其实是比较简单的 举个例子 <div class="main"> <div class="div-main"></ ...
- JS+css3焦点轮播图PC端
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 纯CSS3实现轮播切换效果
使用纯css3实现与轮播器一样的功能. HTML代码: <div class="slide-container"> <input type="radio ...
- CSS3实现轮播图效果2
先前用CSS3做了一个一张图片实现的轮播,但是这样的图片很难找,于是又改进了一下. HTML: <div class="box"> <ul> <li& ...
- 纯JS实现轮播图特效——详解
<div id="slider"> <div id="sliderImgs"> <img src="img/mi04.j ...
随机推荐
- RAISERROR
RAISERROR 可以抛出一个错误,并被程序捕获,在存储过程经常使用: 是否进入Catch代码执行区域,在于错误严重等级设置 RAISERROR ('无效数据', 11 , 1) 第一个参数:自定义 ...
- Spring MVC入门讲解
一.Springmvc是什么? Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想, 将web层进行职责解耦,基 ...
- 【★】KMP算法完整教程
KMP算法完整教程 全称: Knuth_Morris_Pratt Algorithm(KMP算法) 类型: ...
- 个人作业(2)---英语学习APP案例分析
第一部分 调研, 评测 1.下载并使用,描述最简单直观的个人第一次上手体验. PC上的必应词典主页面与其他英语学习APP类似,一些英文读物的推送,但是每日阅读需要去浏览器去看有点不太方便,我觉得直接在 ...
- 201521123077 《Java程序设计》第13周学习总结
1. 本周学习总结 1.1以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 介绍的传输层协议 : TCP 可靠:具有失败重传功能 开销较大:需要建立链路 需要维持传输中的关系 ...
- 201521123119《Java程序设计》第9周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 本次PTA作业题集异常 Q1.常用异常 题目5-1 Q1.1 截图你的提交结果(出现学号) Q1.2 ...
- 学习Python不得不关注和学习的国外大神博客
注意 : 本文收集于网路 . 由于常常更新 , 有些链接打不开, 请自备梯子 在学习Python过程中,总会遇到各种各样的坑, 虽然Python是一门优美而简单易学的语言 . 但当学习后 , 总想着更 ...
- Java main方法继承
java中main方法是可以继承的 Test1.java package Variables; public class Test1 { public static void main(String[ ...
- webservice03#schema#元素属性定义
工具软件XMLSpy 2010 破解版,是非常好的写XMl的工具软件. 1,Schema的好处: Schema出现的目的是通过一个更加合理的方式来编写xml的限制文件(基于xml语法的方式): Sch ...
- MySQL线程池的引入可以提高我们的MySQL的性能
支持线程池的版本:MySQL 企业版本,MySQL percona的分支 MariDB 的版本.我们知道我们的MySQL 语句是不支持硬解析的,没有无SQL 解析 cache.每个连接对应一个线程,我 ...