在ios上动态修改filter:drop-shadow会导致上一次的shadow值没有消除导致遗留显示问题,
真机下自测机型iphone 7p, ios全系列都会如此,安卓正常。
个人猜测原因:filter:drop-shadow导致的渲染问题
测试代码片段(请在ios真机下测试):https://developers.weixin.qq.com/s/Nv93bBmB7xbt
具体表现,图示:
正常情况:
渲染异常情况:
框架类型 | 问题类型 | 操作系统 | 操作系统版本 | 手机型号 | 微信版本 |
---|---|---|---|---|---|
小程序 | Bug | iOS | iOS12.3.1 | iphone7p | 7.0.5 |
5 个回答
目前加了transform: translateZ(0);添加到gpu复合层渲染就正常了。
试了n种版本。最终:
解决办法 不要使用overflow:hidden 可以试着想办法用其他元素遮盖隐藏主元素,
我是把图变成白色了。和背景一样了。并加上 transform: translateZ(0);
style="transform:translateZ(0);filter:brightness(2000%) drop-shadow(80rpx 0px {{demolist.bgcolor?demolist.bgcolor:'#1476FC'}});margin-left: -80rpx;"
参考张鑫旭的文章在Chrome浏览器下,如果一个元素的主体部分,无论以何种方式,只要在页面中不可见,其drop-shadow是不可见的;实体部分哪怕有1像素可见,则drop-shadow完全可见。https://www.zhangxinxu.com/wordpress/2016/06/png-icon-change-color-by-css/
H5 也会这样,求解决方法。iPhone 8 Plus,iOS 12.2
给filter做一下兼容吧