一切在Chromium和Safari中都可以正常工作,而模糊动画在Firefox中却以非常难看的方式停顿。
编辑:事实证明,该问题不会持续影响Firefox。我从Mac切换到Windows,然后在Windows上神奇地运行...
我在网络上找不到任何有价值的东西。据我了解,过滤器模糊要么对其他开发人员有效,要么不起作用。
然后我意识到当只有几个元素要模糊时,不会发生此问题。
所以我的理由是,如果我将带有动画的滤镜模糊应用于保存页面原始内容的容器,则Web浏览器中有很多要模糊的元素。
基于我的家庭测试,该问题影响Mac,但在Windows上不会发生。我认为问题可能出在Mac嵌入式图形芯片组与Firefox之间的集成不良?
总而言之,我构建了以下测试用例。它显示(在我的Mac上)Chromium和Safari动画滤镜动画迅速模糊,而Firefox则结结巴巴,并显示出极其令人不快的性能。
<html>
<style>
div#divContainer {
display: flex;
flex-wrap: wrap;
}
div.toBeBlurred {
height: 50px;
width: 50px;
margin: 5px;
background-color: crimson;
}
.blurred {
filter: blur(25px);
transition-duration: 2s;
}
</style>
<script>
window.onload = function () {
var btn = document.getElementById("applyBlurButton");
var divContainer = document.getElementById("divContainer")
btn.onclick = applyBlur;
for (var i = 0; i < 200; i++) {
newDiv = document.createElement("div");
newDiv.classList.add("toBeBlurred")
divContainer.appendChild(newDiv)
}
}
function applyBlur() {
divContainer.classList.add('blurred');
}
</script>
<body>
<button id="applyBlurButton">Apply Blur!</button>
<div id="divContainer">
</div>
</body>
</html>
答案 0 :(得分:0)
您可以尝试
.blurred {
// Browser Specific
-webkit-filter: blur(25px);
-moz-filter: blur(25px);
-o-filter: blur(25px);
-ms-filter: blur(25px);
filter: blur(25px);
transition-duration: 2s;
}