我想在包装器的背景图像中添加连续淡化效果。我知道你可以使用关键帧动画使背景图像移动到周围,但是,我想知道是否有使用这种技术可能的淡入淡出效果。
http://css-tricks.com/snippets/css/webkit-keyframe-animation-syntax/
例如:
@-webkit-keyframes fontbulger {
0% {
font-size: 10px;
}
30% {
font-size: 15px;
}
100% {
font-size: 12px;
}
在我完美的情况下会像...一样......
@-webkit-keyframes fontbulger {
0% {
background: url(image.png, 1);
}
30% {
background: url(image.png, 0.5);
}
100% {
background: url(image.png, 1);
}
...... 0.5的可见度为50%。当然,这个建议不起作用。有没有办法实现这个目标?我知道您可以将透明度应用于RGB value's,但我想将其应用于图像。
答案 0 :(得分:2)
我不知道目前有什么办法可以直接影响背景图像的不透明度。两种可能的解决方法是:
使用伪元素提供background-image
允许使用的opacity
并将整个内容保持为纯css,但它不适用于webkit
(显然不支持伪元素上的动画),仅在moz
扩展名上(我无法测试IE10 ...对此的反馈会有所帮助)。将Firefox与Chrome this fiddle进行比较,后者使用此代码:
<强> HTML 强>
<div class="bkgAnimate">Foreground text</div>
<强> CSS 强>
.bkgAnimate {
width: 300px; /*only for demo*/
height: 200px; /*only for demo*/
position: relative;
z-index: 1; /* make a local stacking context */
}
.bkgAnimate:after {
content: '';
position: absolute;
top:0;
right: 0;
bottom: 0;
left: 0;
background: url(src="your/image/path/file.png") no-repeat;
z-index: -1;
-webkit-animation: fontbulger 3s infinite;
-moz-animation: fontbulger 3s infinite;
-ms-animation: fontbulger 3s infinite;
}
@-webkit-keyframes fontbulger {
0% { opacity: 1; }
30% { opacity: 0.5; }
100% { opacity: 1; }
}
@-moz-keyframes fontbulger {
0% { opacity: 1; }
30% { opacity: 0.5; }
100% { opacity: 1; }
}
@-ms-keyframes fontbulger {
0% { opacity: 1; }
30% { opacity: 0.5; }
100% { opacity: 1; }
}
更改为将实际img
标记作为背景似乎是让webkit
行为的唯一方式,如this fiddle shows。但这可能不适合你。代码与上述类似,但:
<强> HTML 强>
<div class="bkgAnimate">Foreground text
<img class="bkg" src="your/image/path/file.png"/>
</div>
CSS从上方更改
将:after
选择器更改为.bkgAnimate .bkg
,然后从该代码中删除content
和background
属性。