css - 将背景图像的半透明与关键帧动画相结合

标签 css background transparency

我想在包装器的背景图像中添加连续的淡入淡出效果。我知道你可以使用关键帧动画来使背景图像移动,但是,我想知道使用这种技术是否可以产生淡入淡出效果。

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 ,但我想将其应用于图像。

最佳答案

我目前不知道有什么方法可以直接影响您所寻求的背景图像的不透明度。两种可能的解决方法是:

1。纯CSS3方式(还没有很好支持)

使用伪元素提供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; }
}

2。困惑的 HMTL 解决方案(跨浏览器更友好)

更改为放置实际的 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 并从中删除 contentbackground 属性代码。

关于css - 将背景图像的半透明与关键帧动画相结合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10475089/

相关文章:

c++ - 如何使WebBrowser控件具有透明背景?

c# - 扫描文档中背景/前景层的分离

java - java可以加载透明图像吗?

css - 点击粘性、透明的 iframe

html - 在wordpress上更改代码字体大小

c++ - GTK 和 CSS : Rounded buttons

background - Whatsapp 或电报等应用程序如何监听 Android 上的来电/消息事件?

java - 在 Java 6 和 Java 7 中使用透明窗口

html - 计算自定义字段的不同值的数量

html - 如何继承某个位置(CSS)