前言

  纯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. Java面试系列之HashMap大扫盲汇总

    PS:整理的稍微有点急,不足之处,望各路道友指正,List相关可以查看前一篇随笔! HashMap的工作原理是近年来常见的Java面试题,几乎每个Java程序员都知道HashMap,都知道哪里要用Ha ...

  2. xml字符串转对象xml文件转对象

    判断是否是ie浏览器和非ie浏览器的方法有多种,在此只介绍用例中的方法: 1.解析xml字符串,得到xml对象的方式: function createXml(str){ if(document.all ...

  3. Django1.10主题指南—模型

    模型是你的数据的唯一的.权威的信息源.它包含你所储存数据的必要字段和操作行为.通常,每个模型都对应着数据库中的唯一一张表. 基础认识: 每个model都是一个继承 django.db.models.M ...

  4. 学会Git

    学会Git   目录 一.版本控制概要 1.1.什么是版本控制 1.2.常用术语 1.3.常见的版本控制器 1.4.版本控制分类 1.4.1.本地版本控制 1.4.2.集中版本控制 1.4.3.分布式 ...

  5. CentOS6.5下安装mfs分布式存储(转)

    MFS文件系统的组成 1.  元数据服务器.在整个体系中负责管理管理文件系统,目前MFS只支持一个元数据服务器master,这是一个单点故障,需要一个性能稳定的服务器来充当.希望今后MFS能支持多个m ...

  6. 201521123022 《Java程序设计》 第8周学习总结

    1.本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 2. 书面作业 Q1.List中指定元素的删除(题目4-1) Q1.1 实验总结 本题要求的是编写covnert ...

  7. 201521123072《java程序设计》第五周学习总结

    201521123072<java程序设计>第五周学习总结 标签(空格分隔): java学习 1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 2. 书面作业 代码 ...

  8. 201521123002 《Java程序设计》第13周学习总结

    本次作业参考文件 正则表达式参考资料 1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 网络 基本概念:协议 IP 域名 端口 通信:socket URL ...

  9. 201521123099 《Java程序设计》第13周学习总结

    本周学习总结 书面作业 网络基础 1.1 比较ping www.baidu.com与ping cec.jmu.edu.cn,分析返回结果有何不同?为什么会有这样的不同? 1.2 telnet bbs. ...

  10. 让SAE下的wordpress支持文件上传

    非PHP程序员照着源码打的小布丁… SAE是不允许本地磁盘读写的,所以使用wordpress撰写文章的时候, 上传控件默认是用不了的,幸好SAE提供了storage服务来存储文件,那就可以修改word ...