纯CSS滑块

时间:2014-10-29 20:20:19

标签: html css css3 slider

所以我熟悉了css3,我一直试图找到一个纯粹的css滑块。我终于找到了一个与我在代码笔上寻找的完全相同但由于某种原因,当我在localhost或jsfiddle中尝试代码时,它不起作用。在codepen中没有外部文件可以访问,并且不需要jQuery。下面我链接了(工作)codepen和jsfiddle。任何想法为什么它不会在其他地方工作?

codepen

jsFiddle

HTML

<div class="slider">
  <img class='photo'  src="http://i.imgur.com/zMGSiyl.jpg" alt="" />
  <img class='photo'  src="http://i.imgur.com/soQhb13.jpg" alt="" />
  <img class='photo'  src="http://i.imgur.com/39yOaYB.jpg" alt="" />
  <img class='photo'  src="http://i.imgur.com/tnctKD4.jpg" alt="" />
</div>

CSS

body{background:#000;}

.slider{
  margin:50px auto;
  width:100%;
  height:300px;
  overflow:hidden;
  position:relative;

}
.photo{
  position:absolute;
  animation:round 16s infinite;
  opacity:0;
  width:100%;

}
@keyframes round{   
  25%{opacity:1;}
  40%{opacity:0;}
} 

img:nth-child(4){animation-delay:0s;}
img:nth-child(3){animation-delay:4s;}
img:nth-child(2){animation-delay:8s;}
img:nth-child(1){animation-delay:12s;}

2 个答案:

答案 0 :(得分:3)

您可能需要使用特定于供应商的keyframes。 Codepen很聪明,在这种情况下过度补偿。

@-webkit-keyframes NAME-YOUR-ANIMATION {
  0%   { opacity: 0; }
  100% { opacity: 1; }
}
@-moz-keyframes NAME-YOUR-ANIMATION {
  0%   { opacity: 0; }
  100% { opacity: 1; }
}
@-o-keyframes NAME-YOUR-ANIMATION {
  0%   { opacity: 0; }
  100% { opacity: 1; }
}
@keyframes NAME-YOUR-ANIMATION {
  0%   { opacity: 0; }
  100% { opacity: 1; }
}

更多信息http://css-tricks.com/snippets/css/keyframe-animation-syntax/

答案 1 :(得分:2)

这完美无缺,请检查: jsFiddle Demo 。 CSS3动画的语法和代码中使用的关键帧是标准语法,例如, animation:round 16s infinite;@keyframes round{ 25%{opacity:1;} 40%{opacity:0;} }img:nth-child(4){animation-delay:0s;}

您应该使用-webkit-animation:round 16s infinite;`, `@-webkit-keyframes round{ 25%{opacity:1;} 40%{opacity:0;} } ` and `img:nth-child(4){-webkit-animation-delay:0s;}以使其与浏览器兼容。

有关此内容的更多信息,请访问here

&#13;
&#13;
body {
  background: #000;
}
.slider {
  margin: 50px auto;
  width: 100%;
  height: 300px;
  overflow: hidden;
  position: relative;
}
.photo {
  position: absolute;
  -webkit-animation: round 16s infinite;
  -moz-animation: round 16s infinite;
  -o-animation: round 16s infinite;
  animation: round 16s infinite;
  opacity: 0;
  width: 100%;
}
@-webkit-keyframes round {
  25% {
    opacity: 1;
  }
  40% {
    opacity: 0;
  }
}
@-moz-keyframes round {
  25% {
    opacity: 1;
  }
  40% {
    opacity: 0;
  }
}
@-o-keyframes round {
  25% {
    opacity: 1;
  }
  40% {
    opacity: 0;
  }
}
@keyframes round {
  25% {
    opacity: 1;
  }
  40% {
    opacity: 0;
  }
}
img:nth-child(4) {
  -webkit-animation-delay: 0s;
}
img:nth-child(3) {
  -webkit-animation-delay: 4s;
}
img:nth-child(2) {
  -webkit-animation-delay: 8s;
}
img:nth-child(1) {
  -webkit-animation-delay: 12s;
}
&#13;
<div class="slider">
  <img class='photo' src="http://i.imgur.com/zMGSiyl.jpg" alt="" />
  <img class='photo' src="http://i.imgur.com/soQhb13.jpg" alt="" />
  <img class='photo' src="http://i.imgur.com/39yOaYB.jpg" alt="" />
  <img class='photo' src="http://i.imgur.com/tnctKD4.jpg" alt="" />
</div>
&#13;
&#13;
&#13;