Mobile 3.js don';我不接电话
我在Three.js场景上面有一些菜单项,可以很好地使用鼠标,但是在手机上它们不会收到任何触摸/点击 html元素位于页面中,即如下所示Mobile 3.js don';我不接电话,mobile,three.js,touch,Mobile,Three.js,Touch,我在Three.js场景上面有一些菜单项,可以很好地使用鼠标,但是在手机上它们不会收到任何触摸/点击 html元素位于页面中,即如下所示 <div id='Three.js container' ></div> <div id='menu' ></div> 这是三个触摸处理器 function onDocumentTouchStart(event) { if (event.touches.length == 1) {
<div id='Three.js container' ></div>
<div id='menu' ></div>
这是三个触摸处理器
function onDocumentTouchStart(event) {
if (event.touches.length == 1) {
event.preventDefault();
onPointerDownPointerX = event.touches[0].pageX;
onPointerDownPointerY = event.touches[0].pageY;
onPointerDownLon = lon;
onPointerDownLat = lat;
mouse.x = ( event.touches[0].pageX/ window.innerWidth ) * 0.1;
mouse.y = ( event.touches[0].pageY / window.innerHeight ) * 0.1;
detectHotspotClick();
}
if (event.touches.length == 2) {
_state = STATE.TOUCH_ZOOM_PAN;
var dx = event.touches[ 0 ].pageX - event.touches[ 1 ].pageX;
var dy = event.touches[ 0 ].pageY - event.touches[ 1 ].pageY;
_touchZoomDistanceEnd = _touchZoomDistanceStart = Math.sqrt( dx * dx + dy * dy ``);
}
}
然后鼠标点击
function onDocumentMouseDown(event) {
event.preventDefault();
isUserInteracting = true;
if(selectedHotspot && !viewingHotspot){
TWEEN.removeAll();
selectedHotspot = null;
}
onPointerDownPointerX = event.clientX;
onPointerDownPointerY = event.clientY;
onPointerDownLon = lon;
onPointerDownLat = lat;
// update the mouse variable
mouse.x = ( event.clientX / window.innerWidth ) * 2 - 1;
mouse.y = - ( event.clientY / window.innerHeight ) * 2 + 1;
detectHotspotClick();
}
有人知道我如何确保菜单接收触摸事件吗 将事件侦听器添加到容器div,而不是文档
document.getElementById("container").addEventListener('touchstart', onDocumentTouchStart, false);
document.getElementById("container").addEventListener('touchstart', onDocumentTouchStart, false);