我创建了这个360 panorama image,它在桌面上运行良好,但在手机上鼠标事件无效。我该如何解决这个问题呢?
//听众
document.addEventListener("mousedown", onDocumentMouseDown, false);
document.addEventListener("mousemove", onDocumentMouseMove, false);
document.addEventListener("mouseup", onDocumentMouseUp, false);
我将事件更改为
document.addEventListener("touchstart", onDocumentMouseDown, false);
document.addEventListener("touchmove", onDocumentMouseMove, false);
document.addEventListener("touchend", onDocumentMouseUp, false);
但这不适用于移动设备。
答案 0 :(得分:1)
对于手机,请尝试这样。你必须使用deviceready函数进行启动。
document.addEventListener("deviceready", init, false);
function init() {
document.querySelector("#yourbuttonId").addEventListener("touchstart", onDocumentMouseDown, false)
}
此事件对任何应用程序都至关重要。它表明Cordova的设备API已经加载并准备好访问。
Cordova由两个代码库组成:native和JavaScript。加载本机代码时,会显示自定义加载图像。但是,只有在DOM加载后才会加载JavaScript。这意味着在相应的本机代码可用之前,Web应用程序可能会调用Cordova JavaScript函数。
Cordova完全加载后,deviceready事件将触发。一旦事件触发,您就可以安全地调用Cordova API。一旦HTML文档的DOM加载,应用程序通常会附加一个带有document.addEventListener的事件监听器。
deviceready事件的行为与其他事件略有不同。在deviceready事件触发后注册的任何事件处理程序都会立即调用其回调函数。
http://docs.phonegap.com/en/4.0.0/cordova_events_events.md.html#deviceready
阅读此链接。
感谢。
答案 1 :(得分:1)
我找到了答案。对于touch event.clientX和event.clientY无法正常工作,我已将其更改为event.touches [0] .clientX和event.touches [0] .clientY并修复了触摸事件问题。