Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
纯CSS3交叉衰落_Css_Slideshow_Fade - Fatal编程技术网

纯CSS3交叉衰落

纯CSS3交叉衰落,css,slideshow,fade,Css,Slideshow,Fade,我正在开发一个纯CSS3图像间的交叉衰减器。我遇到的问题是,它只有两个图像,当第二个图像淡出时,它会淡出为白色,而不是直接返回到图像1 我的小提琴不是很好用: 嗨,请找到 您在html中提供了id=“f1”,但在css中没有使用它。这使用了一种非常不同的方法,但从示例的外观来看,它可能正是您所需要的。这是一个纯css交叉淡入,它利用了当前浏览器淡入背景图像的方式 .image1{ background-image:url(http://placehold.it/290x350); } .

我正在开发一个纯CSS3图像间的交叉衰减器。我遇到的问题是,它只有两个图像,当第二个图像淡出时,它会淡出为白色,而不是直接返回到图像1

我的小提琴不是很好用:

嗨,请找到
您在html中提供了
id=“f1”
,但在css中没有使用它。

这使用了一种非常不同的方法,但从示例的外观来看,它可能正是您所需要的。这是一个纯css交叉淡入,它利用了当前浏览器淡入背景图像的方式

.image1{
    background-image:url(http://placehold.it/290x350);
}
.image1:hover{
    background-image:url(http://placehold.it/290x350/000000/ffffff);
}

在我的快速示例中,我所做的只是一个悬停效果,但您可以通过更改类名轻松地控制它。

事实证明,这是对CSS计时和动画代码放置的简单修复。我使用的代码在3幅图像中效果很好,但是在2幅图像中,我需要改变动画的持续时间,以消除淡入白色的效果。我还必须将动画信息(持续时间、迭代、名称等)放在JSFIDLE中:

守则的关键部分:

#f2 {
    z-index:999;
    -webkit-animation-name: fade;
    -webkit-animation-iteration-count: infinite;
    -webkit-animation-duration: 10s;
    animation-name: fade;
    animation-iteration-count: infinite;
    animation-duration: 10s;
}

1此解决方案可以改进。如果你使用真实的图像,你会清楚地看到最初有一个粗略的过渡。这是因为您将f2设置为999。改用这个:

#f1 {
    z-index:999;
    -webkit-animation-name: fade;
    -webkit-animation-iteration-count: infinite;
    -webkit-animation-duration: 10s;
    animation-name: fade;
    animation-iteration-count: infinite;
    animation-duration: 10s;
}
然后按如下所示更改动画位:

@-webkit-keyframes fade {
    0% {opacity: 1;}
    20% {opacity: 0;}
    33% {opacity: 0;}
    53% {opacity: 1;}
    100% {opacity: 1;}
}
@keyframes fade {
    0% {opacity: 1;}
    20% {opacity: 0;}
    33% {opacity: 0;}
    53% {opacity: 1;}
    100% {opacity: 1;}
}

这将转换为#f1而不是#f2,这意味着动画从一开始就是平滑的。

该链接是否不符合您的要求或无法为您打开?唯一的问题是这不是交叉淡入效果。这些图像现在似乎只是淡出为白色,而不是淡出以显示下一张图像。有什么想法吗?
@-webkit-keyframes fade {
    0% {opacity: 1;}
    20% {opacity: 0;}
    33% {opacity: 0;}
    53% {opacity: 1;}
    100% {opacity: 1;}
}
@keyframes fade {
    0% {opacity: 1;}
    20% {opacity: 0;}
    33% {opacity: 0;}
    53% {opacity: 1;}
    100% {opacity: 1;}
}