Javascript 如何避免连续触发HTML5 DeviceOrientationEvent
我正在尝试倾斜一个基于HTML5 DeviceOrientation事件的图像。然而,我发现,即使设备稳定(即不旋转/不移动),事件也会持续触发。在下面的代码段中,控制台日志将连续打印。可能的原因是什么,我怎样才能阻止它 我试着捕捉和泡泡Javascript 如何避免连续触发HTML5 DeviceOrientationEvent,javascript,html,Javascript,Html,我正在尝试倾斜一个基于HTML5 DeviceOrientation事件的图像。然而,我发现,即使设备稳定(即不旋转/不移动),事件也会持续触发。在下面的代码段中,控制台日志将连续打印。可能的原因是什么,我怎样才能阻止它 我试着捕捉和泡泡 if (window.DeviceOrientationEvent) { window.addEventListener('deviceorientation', function(eventData) {
if (window.DeviceOrientationEvent) {
window.addEventListener('deviceorientation', function(eventData) {
var tiltLR = eventData.gamma;
console.log("tiltLR..........",tiltLR);
}, false);
}
我以前不需要使用这种类型的事件监听器,所以我不熟悉输出 但是,我相信您需要将旧倾斜与新倾斜进行比较。如果新的倾斜度大大大于或小于。。。执行代码
if (window.DeviceOrientationEvent) {
var originalTilt = undefined,
tolerance = 5;
window.addEventListener('deviceorientation', function(eventData) {
if (eventData.gamma > originalTilt + tolerance ||
eventData.gamma < originalTilt - tolerance){
var tiltLR = eventData.gamma;
console.log("tiltLR..........",tiltLR);
originalTilt = tiltLR;
}
}, false);
}
if(window.DeviceOrientationEvent){
var originalTilt=未定义,
公差=5;
window.addEventListener('deviceorientation',函数(eventData){
如果(eventData.gamma>原始高度+公差||
eventData.gamma<原始高度-公差){
var tiltLR=eventData.gamma;
控制台日志(“TILLR…………”,TILLR);
原始高度=倾斜高度;
}
},假);
}
我以前不需要使用这种类型的事件侦听器,因此我不熟悉输出
但是,我相信您需要将旧倾斜与新倾斜进行比较。如果新的倾斜度大大大于或小于。。。执行代码
if (window.DeviceOrientationEvent) {
var originalTilt = undefined,
tolerance = 5;
window.addEventListener('deviceorientation', function(eventData) {
if (eventData.gamma > originalTilt + tolerance ||
eventData.gamma < originalTilt - tolerance){
var tiltLR = eventData.gamma;
console.log("tiltLR..........",tiltLR);
originalTilt = tiltLR;
}
}, false);
}
if(window.DeviceOrientationEvent){
var originalTilt=未定义,
公差=5;
window.addEventListener('deviceorientation',函数(eventData){
如果(eventData.gamma>原始高度+公差||
eventData.gamma<原始高度-公差){
var tiltLR=eventData.gamma;
控制台日志(“TILLR…………”,TILLR);
原始高度=倾斜高度;
}
},假);
}