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

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

简要教程

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

使用方法

HTML结构

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

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

另外使用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 > p {
  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中文网(www.)!

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

相关文章:

你感兴趣的文章:

标签云: