前言

  纯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实现轮播图的更多相关文章

  1. CSS3实现轮播图效果

    CSS3实现轮播图主要是由css:background-position和css3:animation实现.且实现此轮播需要一张四个图横着相连的图片. 注(Internet Explorer 10.F ...

  2. css3实现轮播图

    css3动画属性简写: animation: name  duration  timing-function  delay  iteration-count  direction  fill-mode ...

  3. 纯CSS实现轮播图效果,你不知道的CSS3黑科技

    前言 轮播图已经是一个很常见的东西,尤其是在各大App的首页顶部栏,经常会轮番显示不同的图片. 一提到轮播图如何实现时,很多人的第一反应就是使用Javascript的定时器,当然这种方法是可以实现的. ...

  4. 拓展-教你手把手用纯CSS写轮播图

    先看成品图[示例网址:][1] [1]: https://huruji.github.io/css-imitate-js/slider/index.html一.随便说几句####css3动画效果的强大 ...

  5. 纯css实现轮播图

    轮播图的实现原理其实是比较简单的 举个例子 <div class="main"> <div class="div-main"></ ...

  6. JS+css3焦点轮播图PC端

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. 纯CSS3实现轮播切换效果

    使用纯css3实现与轮播器一样的功能. HTML代码: <div class="slide-container"> <input type="radio ...

  8. CSS3实现轮播图效果2

    先前用CSS3做了一个一张图片实现的轮播,但是这样的图片很难找,于是又改进了一下. HTML: <div class="box"> <ul> <li& ...

  9. 纯JS实现轮播图特效——详解

    <div id="slider"> <div id="sliderImgs"> <img src="img/mi04.j ...

随机推荐

  1. 自制mpls ldp实验

    实验步骤 步骤1:完成EIGRP BGP 及宣告配置 步骤2:完成LDP 的配置 过程校验 步骤1:校验和理解LDP 邻居关系的发现和邻接关系的建立 R4#show mpls ldp discover ...

  2. 怎么修改mysql中user表的密码????

  3. 【Alpha】——Second Scrum Meeting

    一.今日站立式会议照片 二.每个人的工作 成员 昨天已完成的工作 今天计划完成的工作 李永豪 完成登录按钮代码 完成添加功能 郑靖涛 完成登录按钮代码 完成删除功能 杨海亮 完成注册按钮代码 完成查找 ...

  4. 201521123068 《java程序设计》 第7周学习总结

    1. 本周学习总结 以你喜欢的方式(思维导图或其他)归纳总结集合相关内容. 2. 书面作业 1.ArrayList代码分析 1.1 解释ArrayList的contains源代码 //contains ...

  5. [转载] sublime text 2 调试python时结果空白

    之前用的时候都一切正常,今天突然就出现了这个问题.按ctrl+b执行的时候结果只有空白,查了很多文章都只提到了中文路径.系统路径等等,没有解决问题,直到看到了这篇文章:http://384444165 ...

  6. 201521123023《Java程序设计》第13周学习总结

    1. 本周学习总结 (1)网络中为了进行数据交换(通信)而建立的规则.标准或约定(=语义+语法+规则)称之为协议(常用http/ftp) (2)大致熟悉了TCP协议,但是UDP怎么辣么蓝,好理解却用不 ...

  7. 201521123106 《Java程序设计》第13周学习总结

    1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 2. 书面作业 1. 网络基础 1.1 比较ping www.baidu.com与ping cec.jmu ...

  8. Java多线程高并发学习笔记(一)——Thread&Runnable

    进程与线程 首先来看百度百科关于进程的介绍: 进程是一个具有独立功能的程序关于某个数据集合的一次运行活动.它可以申请和拥有系统资源,是一个动态的概念,是一个活动的实体.它不只是程序的代码,还包括当前的 ...

  9. JavaEE error整理(不断更新)

    该文章用于整理开发中遇到的一些错误,及解决方法,不断整理更新. 1. 缺包异常 异常1:java.lang.NoClassDefFoundError: org/apache/commons/loggi ...

  10. JSP第四篇【EL表达式介绍、获取各类数据、11个内置对象、执行运算、回显数据、自定义函数、fn方法库】

    什么是EL表达式? 表达式语言(Expression Language,EL),EL表达式是用"${}"括起来的脚本,用来更方便的读取对象! EL表达式主要用来读取数据,进行内容的 ...