Three.js Raycaster scollt 页面偏移

Nac*_*tel 2 javascript three.js

如果场景没有显示在整个页面上并且您可以滚动,则 Raycaster 将停止工作并被您滚动的内容抵消。

向下滚动到一边 20 像素,单击对象下方有 20 像素,以便 Raycaster 正确识别对象。

如何解决我的问题?

非常感谢您的帮助

Kri*_*ofe 7

使用

var rect = renderer.domElement.getBoundingClientRect();
mouse.x = ( ( event.clientX - rect.left ) / ( rect.width - rect.left ) ) * 2 - 1;
mouse.y = - ( ( event.clientY - rect.top ) / ( rect.bottom - rect.top) ) * 2 + 1;
Run Code Online (Sandbox Code Playgroud)

会为你工作。这是一个演示,滚动到底部单击立方体。

var rect = renderer.domElement.getBoundingClientRect();
mouse.x = ( ( event.clientX - rect.left ) / ( rect.width - rect.left ) ) * 2 - 1;
mouse.y = - ( ( event.clientY - rect.top ) / ( rect.bottom - rect.top) ) * 2 + 1;
Run Code Online (Sandbox Code Playgroud)