Firefox 的背景图像的 CSS3 过渡不起作用

Posted

技术标签:

【中文标题】Firefox 的背景图像的 CSS3 过渡不起作用【英文标题】:CSS3 transition of background-image for Firefox not working 【发布时间】:2012-05-08 10:39:52 【问题描述】:

我的背景图像转换在 Chrome 中运行良好,但在 Firefox 中没有任何作用。我是 CSS3 过渡的新手。做过研究,我的语法似乎是正确的。从我读过的内容来看,FF 应该支持这一点。我在FF 12.0。为什么这种 CSS3 过渡在 Firefox 中不起作用。

没有 javascript。没有解决方法。只是解释为什么会失败会很棒。

http://jsfiddle.net/VCdGt/3/

a.call_to_action

    text-decoration: none;
    display: block;
    color: #232744;
    font-size: 20px;
    font-weight: bold;
    height: 47px;
    width: 185px;
    overflow: hidden;
    margin: 10px auto 15px auto;
    text-align: center;
    border: none;
    background: yellow;
    background-image: url(http://www.pslover.com/images/thumb/2751.jpg);
    -webkit-transition: background-image .5s linear;
    -moz-transition: background-image .5s linear;


a.call_to_action:hover 
    background: orange;
    background-image: url(http://www.tutorialdash.com/avatars/3b1f70c20325d8676ce1f56cb9b43f17.gif);
    color: #4F4246;

【问题讨论】:

我认为出于某种原因 IE9 和 FF 不支持 gif。可能我认为您应该尝试创建一些精灵并放置js SetInterval 并不断更改图像,但它对您必须放置的精灵数量以实现平滑过渡非常不利。 @uDaY - 感谢您的建议。我实际上在本地使用 png,所以我认为不是这样。为了演示,我只是从网上抓取了这些图像。我不想为此使用js。我宁愿完全放弃它也不愿使用js。 在 png 的情况下,您是否尝试过查看 CSS Sprites? @uDaY - 是的,我刚刚检查过,文件格式无关紧要。我知道有很多方法可以做到这一点。我不是在寻找解决方法。我正在寻找为什么这不起作用。 【参考方案1】:

在 MDN 文档中找到答案。

http://oli.jp/2010/css-animatable-properties/#background-image

背景图片

这仍然有点悬而未决,“只有渐变”在 当前工作草案,当前没有背景图片 编辑草稿和 CSS 中背景图像的“Animatable: no” 背景和边框模块 3 级编辑草稿。然而, Chrome 19 Canary 中出现了支持,这是 设计师想要。在获得广泛支持之前,这可以通过以下方式伪造 图像精灵和背景位置或不透明度。'

此时我发现实际上没有人支持渐变(Chrome 17、FF 12、IE9)。只有 Chrome 支持背景图像(这就是为什么它在 FF 中对我不起作用的原因)。

【讨论】:

【参考方案2】:

现在是 2014 年,background-image 属性仍然不能设置动画: http://dev.w3.org/csswg/css-backgrounds/#background-image

在 webkit 中可以正常工作,但在 Firefox 中不行。似乎制作一些动画的唯一方法是为 Firefox 使用 jQuery fallback。

【讨论】:

以上是关于Firefox 的背景图像的 CSS3 过渡不起作用的主要内容,如果未能解决你的问题,请参考以下文章

CSS3 过渡/悬停效果在 Firefox 中不起作用; Firefox 错误?

Firefox 中的 CSS3 过渡

背景颜色和背景图像 CSS3 之间的过渡

CSS3颜色过渡在Chrome中不起作用

Firefox中背景图像的过渡?

悬停时div的背景图像转换不起作用[重复]