• 技术文章 >web前端 >css教程

    纯CSS3百叶窗式切换轮播图特效

    黄舟黄舟2017-01-18 13:48:10原创805
    简要教程

    这是一款使用纯CSS3制作的百叶窗式切换轮播图特效。该特效使用背景图片来制作,在轮播图切换时,通过一组div元素来制作百叶窗效果,非常的炫酷。

    使用方法

    HTML结构

    该轮播图特效中使用了6张背景图片,HTML结构如下:

    <div class="slider">
      <div class="captions">
        <div class="c1">duzy fiat</div>
        <div class="c2">syrenka</div>
        <div class="c3">wartburg</div>
        <div class="c4">warszawa</div>
        <div class="c5">wolga</div>
        <div class="c6">polonez</div>
      </div>
      <div class="img img1">
        <div class="frag frag1"></div>
        <div class="frag frag2"></div>
        <div class="frag frag3"></div>
        <div class="frag frag4"></div>
        <div class="frag frag5"></div>
        <div class="frag frag6"></div>
      </div>
      <div class="img img2">
        <div class="frag frag1"></div>
        <div class="frag frag2"></div>
        <div class="frag frag3"></div>
        <div class="frag frag4"></div>
        <div class="frag frag5"></div>
        <div class="frag frag6"></div>
      </div>
      <div class="img img3">
        <div class="frag frag1"></div>
        <div class="frag frag2"></div>
        <div class="frag frag3"></div>
        <div class="frag frag4"></div>
        <div class="frag frag5"></div>
        <div class="frag frag6"></div>
      </div>
      <div class="img img4">
        <div class="frag frag1"></div>
        <div class="frag frag2"></div>
        <div class="frag frag3"></div>
        <div class="frag frag4"></div>
        <div class="frag frag5"></div>
        <div class="frag frag6"></div>
      </div>
      <div class="img img5">
        <div class="frag frag1"></div>
        <div class="frag frag2"></div>
        <div class="frag frag3"></div>
        <div class="frag frag4"></div>
        <div class="frag frag5"></div>
        <div class="frag frag6"></div>
      </div>
      <div class="img img6">
        <div class="frag frag1"></div>
        <div class="frag frag2"></div>
        <div class="frag frag3"></div>
        <div class="frag frag4"></div>
        <div class="frag frag5"></div>
        <div class="frag frag6"></div>
      </div>
    </div>

    另外使用6个Radio按钮作为轮播图的切换按钮:

    <input type="radio" name="slides" id="slide1" checked>
    <input type="radio" name="slides" id="slide2">
    <input type="radio" name="slides" id="slide3">
    <input type="radio" name="slides" id="slide4">
    <input type="radio" name="slides" id="slide5">
    <input type="radio" name="slides" id="slide6">

    CSS样式

    轮播图的基本CSS样式如下:

    .slider, .img {
      width: inherit;
      height: inherit;
    }
    .slider {
      position: relative;
      overflow: hidden;
      background-color: #000;
      border: 8px solid #eee;
      border-radius: 5px;
      box-shadow: 0 7px 20px rgba(0,0,0,.5);
    }
    .img {
      position: absolute;
      margin-left: -8px;
      perspective: 500px;
    }
    .frag {
      width: 150px;
      height: inherit;
      float: left;
      opacity: 0;
      z-index: 0;
      transform-origin: center right;
      transform: rotateY(90deg) translateZ(100px) scale(1.5);
      transition: transform .6s, opacity .6s, -webkit-filter 2s ease-out;
      -webkit-filter: saturate(0) blur(10px) brightness(.6) contrast(4);
    }
    .img .frag2 {
      background-position: -150px 0;
      transition-delay: .2s;
    }
    .img .frag3 {
      background-position: -300px 0;
      transition-delay: .4s;
    }
    .img .frag4 {
      background-position: -450px 0;
      transition-delay: .6s;
    }
    .img .frag5 {
      background-position: -600px 0;
      transition-delay: .8s;
    }
    .img .frag6 {
      background-position: -750px 0;
      transition-delay: 1s;
    }

    轮播图中使用的背景图片样式如下:

    .img1 .frag { background-image: url(1.jpg) }
    .img2 .frag { background-image: url(2.jpg) }
    .img3 .frag { background-image: url(3.jpg) }
    .img4 .frag { background-image: url(4.jpg) }
    .img5 .frag { background-image: url(5.jpg) }
    .img6 .frag { background-image: url(6.jpg) }

    轮播图控制按钮的CSS样式如下:

    #slide1:checked ~ .slider .img1 .frag, #slide2:checked ~ .slider .img2 .frag, #slide3:checked ~ .slider .img3 .frag, 
    #slide4:checked ~ .slider .img4 .frag, #slide5:checked ~ .slider .img5 .frag, #slide6:checked ~ .slider .img6 .frag {
      transform: rotateY(0) translateZ(0) scale(1);
      -webkit-filter: saturate(1) blur(0) brightness(1) contrast(1);
      opacity: 1;
      z-index: 1;
    }
     
    .controls {
      position: absolute;
      bottom: -50px;
      left: 50%;
      margin-left: -115px; /*(6elem30px+5el10px)/2=115px*/
    }
     
    .controls label {
      display: block;
      height: 10px;
      width: 30px;
      float: left;
      background-color: #000;
      margin-right: 10px;
      cursor: pointer;
      opacity: .2;
      transition: opacity .5s;
    }
     
    .controls label:hover, .side-controls label:hover, 
    #slide1:checked ~ .controls label:nth-of-type(1), 
    #slide2:checked ~ .controls label:nth-of-type(2), 
    #slide3:checked ~ .controls label:nth-of-type(3), 
    #slide4:checked ~ .controls label:nth-of-type(4), 
    #slide5:checked ~ .controls label:nth-of-type(5), 
    #slide6:checked ~ .controls label:nth-of-type(6) { opacity: .8; }
     
    .side-controls label {
      position: absolute;
      display: block;
      border-top: 30px solid transparent;
      border-bottom: 30px solid transparent;
      top: 50%;
      margin-top: -15px;
      cursor: pointer;
      opacity: .2;
      transition: opacity .5s;
    }
     
    #slide1:checked ~ .side-controls label:nth-of-type(6), 
    #slide2:checked ~ .side-controls label:nth-of-type(1), 
    #slide3:checked ~ .side-controls label:nth-of-type(2), 
    #slide4:checked ~ .side-controls label:nth-of-type(3), 
    #slide5:checked ~ .side-controls label:nth-of-type(4), 
    #slide6:checked ~ .side-controls label:nth-of-type(5) {
      left: -40px;
      border-right: 40px solid #000;
    }
     
    #slide1:checked ~ .side-controls label:nth-of-type(2), 
    #slide2:checked ~ .side-controls label:nth-of-type(3), 
    #slide3:checked ~ .side-controls label:nth-of-type(4), 
    #slide4:checked ~ .side-controls label:nth-of-type(5), 
    #slide5:checked ~ .side-controls label:nth-of-type(6), 
    #slide6:checked ~ .side-controls label:nth-of-type(1) {
      right: -40px;
      border-left: 40px solid #000;
    }
     
    #slide2:checked ~ .slider .captions .c2, 
    #slide1:checked ~ .slider .captions .c1, 
    #slide3:checked ~ .slider .captions .c3, 
    #slide4:checked ~ .slider .captions .c4, 
    #slide5:checked ~ .slider .captions .c5, 
    #slide6:checked ~ .slider .captions .c6 { text-shadow: 0 0 0 rgba(255,255,255,.9) }

    最后为图片标题设置CSS样式:

    .captions > div {
      position: absolute;
      right: 20px;
      bottom: 7px;
      color: transparent;
      text-shadow: 0 0 60px transparent;
      font-size: 3em;
      z-index: 1;
      text-transform: uppercase;
      transition: text-shadow 2s;
    }

    以上就是纯CSS3百叶窗式切换轮播图特效的内容,更多相关内容请关注PHP中文网(m.sbmmt.com)!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:18种垂直分页导航按钮动画特效 下一篇:纯CSS3制作可编辑的微软Word样式文档

    相关文章推荐

    • 怎么用css样式把图片改为灰色• css怎么降低背景透明度• css3如何让animation动画停止• css怎么实现图片放大缩小动画• 手把手教你CSS架构之SMACSS

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网