jQuery mousemove使用three.js减慢WebGL的速度

时间:2013-12-15 13:44:16

标签: jquery three.js webgl

如果我在我的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
})

1 个答案:

答案 0 :(得分:0)

由于经常调用jquery来查找特定的DOM元素(在你的情况下是#wct)并检查鼠标移动到那里,所以发生了减速。

事件侦听器的工作方式不同,专门用于捕获事件。