我很确定使用新的css动画功能可以进行仅css图像交叉淡化。我的要求是它应该适用于没有javascript的任意数量的图像。
有谁知道它是如何完成的?
我是如何开始的:
img(src='img1.png')
img(src='img2.png')
img(src='img3.png')
img(src='img4.png')
接下来,所有图像都设置为堆叠在一起,第一个图像显示:
img
opacity 0
transition 1s
position absolute
&:first-child
opacity 100
现在我如何浏览每张图片?
编辑:似乎不可能。需要javascript。
答案 0 :(得分:8)
这篇文章是我见过的最好的效果。
http://tympanus.net/codrops/2012/01/02/fullscreen-background-image-slideshow-with-css3/
他们使用跨度,动画和:nth-child属性来实现背景图像之间的交叉淡入淡出。太棒了。
.cb-slideshow li span {
width: 100%;
height: 100%;
position: absolute;
top: 0px;
left: 0px;
color: transparent;
background-size: cover;
background-position: 50% 50%;
background-repeat: none;
opacity: 0;
z-index: 0;
animation: imageAnimation 36s linear infinite 0s;
}
.cb-slideshow li:nth-child(1) span {
background-image: url(../images/1.jpg)
}
.cb-slideshow li:nth-child(2) span {
background-image: url(../images/2.jpg);
animation-delay: 6s;
}
.cb-slideshow li:nth-child(3) span {
background-image: url(../images/3.jpg);
animation-delay: 12s;
}
.cb-slideshow li:nth-child(4) span {
background-image: url(../images/4.jpg);
animation-delay: 18s;
}
.cb-slideshow li:nth-child(5) span {
background-image: url(../images/5.jpg);
animation-delay: 24s;
}
.cb-slideshow li:nth-child(6) span {
background-image: url(../images/6.jpg);
animation-delay: 30s;
}
.cb-slideshow li:nth-child(2) div {
animation-delay: 6s;
}
.cb-slideshow li:nth-child(3) div {
animation-delay: 12s;
}
.cb-slideshow li:nth-child(4) div {
animation-delay: 18s;
}
.cb-slideshow li:nth-child(5) div {
animation-delay: 24s;
}
.cb-slideshow li:nth-child(6) div {
animation-delay: 30s;
}
答案 1 :(得分:5)