好了,所以這裏是解決方案,
由於@Kaiido建議我需要使用SVG過濾方法。
但是,對於Internet Explorer,我需要生成一個小的分辨率的base64圖像。 10px x 10px 然後加載Internet Explorer的base64圖像,這會在圖像被拉伸以適合容器時創建模糊的效果。
對於過渡到非模糊圖像,我使用了支持它的瀏覽器的SMIL轉換。過濾器:模糊過渡的瀏覽器不支持SMIL和IE瀏覽器沒有轉換圖像只是交換。
HTML:
<svg width="0px" height="0px"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink">
<filter id="better-blur" x="0" y="0" width="1" height="1">
<feGaussianBlur stdDeviation="25" result="blurred">
<animate id="anim" attributeType="XML" attributeName="stdDeviation" from="25" to="0" begin="indefinite" fill="freeze"
dur="0.35s"></animate>
</feGaussianBlur>
<feMorphology in="blurred" operator="dilate" radius="25" result="expanded"></feMorphology>
<feMerge>
<feMergeNode in="expanded"></feMergeNode>
<feMergeNode in="blurred"></feMergeNode>
</feMerge>
</filter>
</svg>
<div class="image-wrapper orig" style="background-image: url(\'' . esc_url($thePostThumbUrl) . '\'); background-size: cover; background-position: bottom; filter: url(#better-blur);visibility: hidden;"></div>
JAVASCRIPT:
<script type="text/javascript">
if (!jQuery("#anim")[0].beginElement) {
jQuery(".image-wrapper").css("filter", "blur(25px)");
}
</script>
<script type="text/javascript">
jQuery(window).load(function() {
setTimeout(function() {
if (jQuery("#anim")[0].beginElement) {
jQuery("#anim")[0].beginElement();
}
else {
jQuery(".image-wrapper").css("filter", "blur(0px)");
}
}, 1000);
});
</script>
CSS:
.image-wrapper {
transition: 0.25s filter linear;
-webkit-transition: 0.25s filter linear;
-moz-transition: 0.25s filter linear;
-o-transition: 0.25s filter linear;
position: absolute;
top: 0;
left: 0;
overflow: hidden;
display: block;
}
感謝Kaiido你的幫助:)
你可以混合不同的SVG過濾,以避免它。參見例如[泰勒亨特的這個很好的解釋](https://codepen.io/tigt/post/fixing-the-white-glow-in-the-css-blur-filter)。在這裏它適用於你的情況:https://jsfiddle.net/4k10yozs/ – Kaiido
@Kaiido嗨,感謝您的幫助:)有沒有辦法轉換這種方法。 https://jsfiddle.net/gg5g5fgh/5/ –
不,不是來自CSS,至少... – Kaiido