直接使用filter:blur(2px);和backdrop-filter:blur(2px);都是一样的问题,下面看图
首先是在官方开发工具的模拟器中,这是想要的效果:
注意看底栏模糊显示的部分,文字与图片都被正确地高斯模糊了:
然后看我手持iOS18.5设备(另有一篇帖子大佬提到18.4也有同样的问题)截图的画面:
应该很明显能分辨出,这跟模拟其中的效果差远了:
下面是为了实现模拟器中效果的代码:
backdrop-filter: blur(2px);
是的只有这一行(当然还有透明白色背景和边框这样的东西应该是问题根源吧),然后就是两种效果。
同时,在安卓机上预览的效果跟模拟器一致,在鸿蒙5设备上预览的效果跟iOS一致,我就不重复贴图了。
贴一下提到的大佬的帖子:
https://developers.weixin.qq.com/community/develop/doc/000a040ccfc4d003b823d584167800
解决办法找到了:
在<page-meta>标签中添加背景色background-color属性。
小程序对backdrop-filter兼容很差,需要改成
-webkit-filter: blur(2px); -moz-filter: blur(2px); -ms-filter: blur(2px); filter: blur(2px);
需要兼容写法例如:
.my-blur { backdrop-filter:blur(2px); -webkit-backdrop-filter: blur(2px); }