在 Mozilla FF 中不会发生过渡效果

Posted

技术标签:

【中文标题】在 Mozilla FF 中不会发生过渡效果【英文标题】:Transition effect won't take place in Mozilla FF 【发布时间】:2014-07-29 23:25:31 【问题描述】:

我有一个缩略图列表(投资组合项目),其中有一些悬停动画。因此,缩略图图像变成灰度,变得模糊和变亮一点。但是,我需要它流畅,所以我使用了过渡,它在 Safari、Chrome 和 Opera 中运行良好,但在 Mozilla Firefox 中失败(我目前正在 Mac/FF 29 上测试它)。 这是 html 部分:

<ul class="thumbnails">
        <li class="span3">
            <div class="thumbnail">
                 <a href="#gallery_1" data-toggle="lightbox">
                <img src="img/gallery/gallery_1.jpg" class="greyer" >
                 </a>
                </div>
        </li>

CSS如下:

.greyer 
  -webkit-transition: all 500ms ease;
  -moz-transition: all 500ms ease;
  -o-transition: all 500ms ease;
  -ms-transition: all 500ms ease;
  transition: all 500ms ease;


.greyer:hover 
-webkit-filter: grayscale(100%) brightness(140%) blur(1px);
-o-filter: grayscale(100%) brightness(140%) blur(1px);
-moz-filter: grayscale(100%) brightness(140%) blur(1px);
-ms-filter: grayscale(100%) brightness(140%) blur(1px);
filter: grayscale(100%) brightness(140%) blur(1px);
filter: url(grayblurr.svg#grayscaledBlur);

提前感谢您的提示和解决方法!

【问题讨论】:

-moz-filter 无效。在您拥有的过滤器中,FF 将使用filter: url(..),所以大概这就是问题所在。对于灰度解决方法怎么样:***.com/a/12173285/246342 感谢您的评论 Alex K.,实际上我已经尝试过您提到的解决方案,但结果是一样的。在这种情况下,我唯一的问题是使事情(动画)顺利进行,不幸的是,这在 FF 中不会发生 【参考方案1】:

我已经使用 SVG 进行了尝试。它不显示灰度图像,但在 Mozilla 上显示模糊效果,在所有其他浏览器中都可以正常工作。

代码如下:

CSS:

<style>
.svg-only-blur 
  -webkit-transition: all 500ms ease;
  -moz-transition: all 500ms ease;
  -o-transition: all 500ms ease;
  -ms-transition: all 500ms ease;
  transition: all 500ms ease;



.svg-only-blur:hover 
-webkit-filter: grayscale(100%) brightness(140%) blur(4px);
-moz-filter: grayscale(100%) brightness(140%) blur(4px);
-o-filter: grayscale(100%) brightness(140%) blur(4px);
-ms-filter: grayscale(100%) brightness(140%) blur(4px);
filter: grayscale(100%) brightness(140%) blur(4px);
filter: url(#blur); 



</style>

HTML:

   <body>
<svg version="1.1"   >
  <defs>
     <filter id="blur" x="0" y="0">
       <feGaussianBlur stdDeviation="3" />
     </filter>
  </defs>
</svg>  
<img src="1.jpg" class="svg-only-blur" >

</body>

希望对你有帮助。

【讨论】:

感谢您的贡献!实际上,我在我的初始代码中确实使用了 SVG,并根据需要实现了同时灰度 + 模糊的结果。问题是我希望过渡顺利/缓慢(就像在 Chrome 或 Safari 中一样)。在 FF 中,过渡发生得迅速而突然……

以上是关于在 Mozilla FF 中不会发生过渡效果的主要内容,如果未能解决你的问题,请参考以下文章

过渡效果

css3 过渡延迟,如果动画 svg 填充和颜色同时 chrome 中的错误在 FF 中起作用

CSS3 垂直弹出菜单 + 过渡在 FF 中不起作用

transition

让hover效果平滑过渡回初始状态?

safari 中的 css3 过渡不顺畅