如果我在我的WebGL容器上放置mousemove
处理程序,则移动鼠标时帧速率会急剧下降。这只有在我使用jQuery mousemove
函数时才会发生,如果我改为使用普通addEventListener
,则不会发生丢弃。是否有一些特定的东西我需要为jQuery做到没有这种情况发生?或者这是jquery中的已知缺陷?
快速代码:
document.getElementById('wct').addEventListener( "mousemove", function(e) {
var x = e.pageX - this.offsetLeft
var y = e.pageY - this.offsetTop
sc_outer.light.position.x = x
sc_outer.light.position.y = y
})
慢代码:
$('#wct').mousemove( function(e) {
var x = e.pageX - this.offsetLeft
var y = e.pageY - this.offsetTop
sc_outer.light.position.x = x
sc_outer.light.position.y = y
})
答案 0 :(得分:0)
由于经常调用jquery来查找特定的DOM元素(在你的情况下是#wct)并检查鼠标移动到那里,所以发生了减速。
事件侦听器的工作方式不同,专门用于捕获事件。