我正在从JavaScript更新DOM元素的亮度/对比度:
let style = `brightness(${brightness}%) contrast(${contrast}%)`;
element.style.filter = style;
当用户按住鼠标左键并移动光标时会发生这种情况。然而,亮度/对比度在Safari(Mac)中不会改变,除非滚动条可见。然而,亮度在其他浏览器(Chrome、Firefox、Edge)中会改变。这是Safari中的一个bug吗?如何使其在Safari中工作?
演示:https://l36vng.csb.app/
代码:https://codesandbox.io/s/charming-vaughan-l36vng?file=/main.js:2207-2306
PS.这在iOS上的Safari中也不起作用(如果我在上面的代码中包含触摸事件处理程序的话)。我的Mac Safari版本是16. 1。
1条答案
按热度按时间dfddblmv1#
这似乎在最新的技术预览版(版本160(Safari 16.4,WebKit 18615.1.14.3))中得到了修复。
目前,你可以通过在filter属性上添加一个超快的转换来解决这个问题,这将使当前的稳定性很好,并按预期更新过滤器。