css3图像交叉淡入淡出(没有javascript)

时间:2011-12-16 22:32:09

标签: css css3 css-animations

我很确定使用新的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。

2 个答案:

答案 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)

使用本文中概述的关键帧:http://css3.bradshawenterprises.com/cfimg/#cfimg3