看电话';使用JavaScript实现物理定向
我想知道用户是否在纵向或横向模式下保持屏幕,即使他们锁定了屏幕 我不能使用看电话';使用JavaScript实现物理定向,javascript,mobile,orientation,responsive,Javascript,Mobile,Orientation,Responsive,我想知道用户是否在纵向或横向模式下保持屏幕,即使他们锁定了屏幕 我不能使用orientationchange事件,因为如果旋转被锁定,这些事件将不会触发。我希望跟踪设备的实际旋转,而不是视口的逻辑方向 我知道,通常情况下,我们不应该强制用户显示方向,当用户锁定方向时,我们应该尊重他们的偏好——但我确实有理由这样做 有什么办法吗?是-如果手机保持直立状态。然后我们可以使用DeviceMotionEvents读取手机X轴和Y轴上的重力: function watchOrientation(subsc
orientationchange
事件,因为如果旋转被锁定,这些事件将不会触发。我希望跟踪设备的实际旋转,而不是视口的逻辑方向
我知道,通常情况下,我们不应该强制用户显示方向,当用户锁定方向时,我们应该尊重他们的偏好——但我确实有理由这样做
有什么办法吗?是-如果手机保持直立状态。然后我们可以使用
DeviceMotionEvents
读取手机X轴和Y轴上的重力:
function watchOrientation(subscriber) {
if (window.DeviceMotionEvent) {
window.addEventListener('devicemotion', eventData => {
const hg = eventData.accelerationIncludingGravity.x;
const vg = eventData.accelerationIncludingGravity.y;
if (vg > 5) {
subscriber('up');
} else if (vg <= -5) {
subscriber('down');
} else if (hg > 0) {
subscriber('left');
} else if (hg <= 0) {
subscriber('right');
}
}, true);
} else {
console.warn('Device does not support "devicemotion" events');
}
}
功能定位(订户){
if(window.DeviceMotionEvent){
addEventListener('devicemotion',eventData=>{
const hg=eventData.accelerationIncludingGravity.x;
const vg=eventData.accelerationIncludingGravity.y;
如果(vg>5){
认购人(“up”);
}else if(vg 0){
认购人(“左”);
}否则,如果(汞柱)