使用带有3d变换的css渐变蒙版图像时出现毛刺

Jus*_*a J 7 css webkit css3 css-transforms

我正在使用基于Keith Clark教程的纯css视差,该教程使用3d变换.

transform: translate3d(0, 0, -30px) scale(1.31); 
Run Code Online (Sandbox Code Playgroud)

此外,我正在使用带有径向渐变的css渐变蒙版图像,用于视差的图层.

mask-image: radial-gradient(10px circle at 50% 150px, transparent 0, black 100%)
Run Code Online (Sandbox Code Playgroud)

我在codepen上创建了带有示例图形的demo:https://codepen.io/justynaj/full/veyJLz/ .

在某些浏览器中,我看到了可怕的故障.最大的问题是毛刺出现不确定性.我注意到,当我的计算机CPU/GPU加载时,这个故障发生的概率会增加.出现在基于webkit的浏览器中的故障,例如Windows 10上的Opera浏览器或Android上的Chrome浏览器.有时它们在页面加载后立即可见,有时在页面滚动后可见.
示例屏幕截图:https://image.ibb.co/hQcrmG/chrome_android.png.

是什么原因导致这种奇怪的浏览器行为?

Yan*_*kes 4

当我尝试使用纯背景颜色而不是 JPEG img 元素时,滚动时的撕裂(毛刺)显着减少:

https://codepen.io/Pendrokar/full/gGKGZO/

<img style="background-color:red" alt="" class="bg-img" aria-hidden="true">   
Run Code Online (Sandbox Code Playgroud)

使用“style”仅用于快速演示目的,因为替换“src”比删除和添加 CSS 规则更快。如果这个解决方案足够好,则将“img”元素替换为“div”。