当拖动输入范围时,亮度值(也是css属性)正在更新,但在safari中图像不会立即生效。(但在chrome中效果很好)
如何更新拖动时应用更改?
var app = Vue.createApp({
data() {
return {
brightness: 1
}
},
computed:{
imgStyle(){
return {
'-webkit-filter': `brightness(${this.brightness})`
}
}
}
});
var vm = app.mount("#app");
<div id="app">
<img src="https://images.pexels.com/photos/45201/kitty-cat-kitten-pet-45201.jpeg?" width="150"
:style="imgStyle">
<input type="range" min="0" max="2" step="0.1" v-model="brightness"/>
<span> {{brightness}} </span>
</div>
1条答案
按热度按时间db2dz4w81#
This answers有一个"自动"修复Safari中这种奇怪行为的黑客。
你必须添加一个
translate3d(0)
或translateZ(0)
类,强制你的浏览器对这个元素进行use GPU to recalculate changes处理,然后对它们做出React,这似乎克服了Safari上的这个问题,而不会对你的UI产生任何视觉上的差异。