我有一個幻燈片,其中圖片在循環中自動交叉淡入淡出。它被設置爲3張圖片滾動。純CSS交叉淡入淡出畫廊與任何數量的圖片
演示在Codepen(http://codepen.io/lopis/pen/VYRoKE)
<section class="crossfade">
<article class="slide">
<img src="http://lorempixel.com/400/200/people" alt="" />
</article>
<article class="slide">
<img src="http://lorempixel.com/400/200/cats" alt="" />
</article>
<article class="slide">
<img src="http://lorempixel.com/400/200/sports" alt="" />
</article>
</section>
的CSS:
$slideDuration: 4; // seconds
$slideNum: 3;
@mixin loop($name, $duration, $delay) {
-webkit-animation: $name #{$duration}s #{$delay}s infinite;
-moz-animation: $name #{$duration}s #{$delay}s infinite;
animation: $name #{$duration}s #{$delay}s infinite;
}
@mixin slide() {
@for $i from 1 through $slideNum {
.slide:nth-child(#{$i}) {
@include loop(crossfade, ($slideNum * $slideDuration), (($i - 1) * $slideDuration));
}
}
}
@mixin keyframes() {
@-webkit-keyframes crossfade {
0% {
opacity:1;
}
25% {
opacity:1;
}
33% {
opacity:0;
}
86% {
opacity:0;
}
100% {
opacity:1;
}
}
@keyframes crossfade {
0% {
opacity:1;
}
25% {
opacity:1;
}
33% {
opacity:0;
}
86% {
opacity:0;
}
100% {
opacity:1;
}
}
}
.crossfade {
position: relative;
}
.slide {
position: absolute;
top: 0;
}
.slide:first-child {
position: static;
}
@include slide();
@include keyframes();
有沒有一種方法,使像這樣的會,只要使用CSS任意數量的幻燈片的工作動畫?
編輯:據我所知,這樣的動力並不打算在CSS,但你可以通過使用calc()
有一些動態內容,如,等
一些圖書館,作爲一個在評論中建議,允許爲此任務使用mixins。這不是我正在尋找的,因爲它需要重建源代碼。
我已經創建了一個SASS mixin執行此任務:http://www.fabriziocalderan.it/css3slideshow/ – fcalderan 2015-03-31 09:27:34
我會稍微測試一下,但這是否需要我們每次重建sass? – ecc 2015-03-31 09:28:59
圖像的數量必須作爲mixin的參數傳遞,關鍵幀需要知道不透明度何時必須動畫 – fcalderan 2015-03-31 09:30:06