背景
在开发过程中,常用filter: drop-shadow属性来实现图标变色的需求,主要实现过程是,将原图标投影成不同颜色的图标,然后使用hidden将原图片隐藏。该属性在web端和android都正常显示,但是ios下使用该属性,投影出来的图片无法显示。
解决方案
参考:IOS真机下动态修改filter:drop-shadow导致的渲染异常问题 | 微信开放社区
根据社区提供的方案添加transform: translateZ(0)属性后,正常显示
添加transform: translateZ(0)属性后,该元素将会使用GPU强制渲染,但是为什么这样做会生效,具体原因不是很清楚,有点hack写法~~~