美文网首页
CSS3动画属性实现图片轮播

CSS3动画属性实现图片轮播

作者: 巴斯光年lip | 来源:发表于2017-05-18 12:30 被阅读0次
轮播图.gif

不会置入demo(T-T) 只能用ps模拟网页效果做一张GIF,渣图。网页动效要更平滑一些。

<html结构>

<body>
    <div id="slidershow">
           <input type="radio" checked name="slider" id="l01">
          <input type="radio" name="slider" id="l02">
        <input type="radio" name="slider" id="l03">
        <div class="wrap">
            <!--插入轮播图片-->
        <div class="wrap">
            <ul class="slider">
                <li> ![](images/1.jpg)</li>
                <li> ![](images/2.jpg)</li>
                <li>![](images/3.jpg)</li>
            </ul>
        </div>
        <!--通过使用 "for" 属性将 label 绑定到 "input" -->
        <div class="opts">
             <label for="l01" class="focus-item focus-item1">1</label>
            <label for="l02" class="focus-item focus-item2">2</label>
            <label for="l03" class="focus-item focus-item3">3</label>
        </div>
    </div>
</body>

<CSS样式>

* {
    margin: 0;
    padding: 0;
}
ul {
    list-style: none;
}
#slidershow {
    position: relative;
    width: 500px;
    height: 500px;
    margin: 30px auto;
    overflow: hidden;
}
.slider {
    width: 300%;  /*--三张图片的宽度--*/
    height: 100%;
    margin-left: 0;
    -webkit-animation: slide1 6s ease-out infinite;
}
.slider li {
    float: left;
    width: 500px;
    height: 100%;
}
/*--创建三种动画策略--*/
@-webkit-keyframes slide1{
    0% {margin-left: 0;}
    23% {margin-left: 0;}
    33% {margin-left: -500px;}
    56% {margin-left: -500px;}
    66% {margin-left: -1000px;}
    90% {margin-left: -1000px;}
    100% {margin-left: 0;}
}
@-webkit-keyframes slide2{
    0% {margin-left: -500px;}
    23% {margin-left: -500px;}
    33% {margin-left: -1000px;}
    56% {margin-left: -1000px;}
    66% {margin-left: 0;}
    90% {margin-left: 0;}
    100% {margin-left: -500;}
}
@-webkit-keyframes slide3{
    0% {margin-left: -1000px;}
    23% {margin-left: -1000px;}
    33% {margin-left: 0;}
    56% {margin-left: 0;}
    66% {margin-left: -500px;}
    90% {margin-left: -500px;}
    100% {margin-left: -1000;}
}
/*--修改动画名称--*/
/*--点击页码图标链接到input,实现点击页码更换图片的效果--*/
#l01:checked ~ .wrap .slider {
    -webkit-animation-name: slide1; 
}
#l02:checked ~ .wrap .slider {
    -webkit-animation-name: slide2; 
}
#l03:checked ~ .wrap .slider {
    -webkit-animation-name: slide3; 
}
/*--短暂地取消动画名称,模拟重启动画--*/
#l01:active ~ .wrap .slider {
    -webkit-animation-name: none; 
    margin-left: 0;
}
#l02:active ~ .wrap .slider {
    -webkit-animation-name: none; 
    margin-left: -500px;
}
#l03:active ~ .wrap .slider {
    -webkit-animation-name: none; 
    margin-left: -1000px;
}
/*--页码样式--*/
.opts {
  position: absolute;
  bottom: 0;
  width: 100%;
  line-height: 0;
  text-align: center;
  padding: 5px 0;
}
.opts label {
  display: inline-block;
  width: 15px;
  height: 10px;
  margin: 0 3px;
  border-radius: 5px;
  cursor: pointer;
}
.focus-item{
width:100%;
height:100%;
background-color: #fff;
border-radius:inherit;
-webkit-animation: fade linear infinite;
}
/*--第二和第三个页码标签设置透明度0.2--*/
.focus-item2,.focus-item3 {
    opacity: .2;
}
/*--页码动画总时长和图片轮播时长一致--*/
.focus-item{
-webkit-animation-duration: 6s;
}
/*--页码动画从0-5%渐显,所以等待时长缩短零点几秒--*/
.focus-item1{
-webkit-animation-delay: -.2s;
}
.focus-item2{
-webkit-animation-delay: 1.6s;
}
.focus-item3{
-webkit-animation-delay: 3.6s;
}
@-webkit-keyframes fade{
0%{
opacity:.2;  /*--没轮到的页码设置成一点点透明--*/
z-index:2;
}
5%{
opacity:1;
z-index: 1;
}
20%{
opacity:1;
z-index:1;
}
25%{
opacity:.2;
z-index:0;
}
100%{
opacity:.2;
z-index:0;
}
}
/*--隐藏input按钮--*/
#l01,#l02,#l03 {
    display: none;
}

本来要弄的是白色的圆点跳转成蓝色的效果,结果我弄来弄去也弄不出来,只好弄一个降低透明度来区分两种效果,也还行。
[参考来源] http://codepen.io/lucifier/pen/DicEn

相关文章

  • CSS3动画属性实现图片轮播

    不会置入demo(T-T) 只能用ps模拟网页效果做一张GIF,渣图。网页动效要更平滑一些。 <...

  • CSS3 动画

    动画属性 动画(animation)是CSS3新增的属性,动画属性可以为元素创建动画,CSS3以前在网页上实现动画...

  • 用四种方法实现轮播图

    1、css3动画实现的轮播图 实现原理如下呀: 1、设置大的div a)设置绝对定位,定位位置,b)设置图片展示...

  • 微信小程序swiper做导航栏时高度自适应问题

    微信小程序中 组件可以实现图片轮播,非常之方便。 其中interval属性是图片轮播时间,duration属性是图...

  • 用动画做图片轮播

    图片轮播的新方法,用动画实现轮播: 1.将需要轮播的图片用标签放在同一位置; 2.通过改变各个图片的透明度实现轮播...

  • CSS 动画指南

    CSS3动画(简单动画的实现,如旋转等)** 依靠CSS3中提出的三个属性:transition、transfor...

  • CSS3动画

    在CSS3中,动画效果使用animation属性来实现。animation属性和transition属性功能是相同...

  • Hack、过渡与变形(变换)

    条件Hack 图片的修复 属性 选择符 CSS3过渡动画 css3圆角 阴影 透明度 运动曲线 图片文字遮罩 变形...

  • css3怎么实现图片轮播

    今日休战 原理: 通过css3的animation属性,改变left值,实现自动轮播等效果 上代码: css代码 ...

  • H5动画效果

    我们使用CSS3可以实现动画,主要的方式是通过animation 实现的。 animation属性 animati...

网友评论

      本文标题:CSS3动画属性实现图片轮播

      本文链接:https://www.haomeiwen.com/subject/tkrsxxtx.html