我正在使用JavaScript。我需要知道用户何时改变了手机的方向,我也需要知道哪个方向( 0,90,-90或180)。
orientationchange。window.addEventListener("orientationchange", function(event) {
console.log("the orientation of the device is now " + event.target.screen.orientation.angle);
});不幸的是,这并不适用于IOS Safari。在orientation中没有event.target.screen对象。
window.orientation (似乎它正在工作,但从文档来看,它是不推荐的,必须避免。resize侦听器。window.onresize = () => {
if(window.innerWidth >= window.innerHeight){
//landscape
}
else{
//portrait
}
};这有两个问题。1)有时在某些iPhones或同一iPhone上不能正确检测到这一点,但在不同的时间。2)我不知道如何知道角度。(0,90,-90,180)。我对屏幕、innerHeight、innerWidth或诸如此类的东西不太了解。
有合适的解决办法吗?
发布于 2020-07-04 20:18:24
你试过β(x轴)或γ(y轴)吗?
例如:
function handleOrientation(event) {
var absolute = event.absolute;
var alpha = event.alpha; // z-axis
var beta = event.beta; // x-axis
var gamma = event.gamma; // y-axis
// Do stuff with the new orientation data}
发布于 2020-07-04 20:34:24
您可以使用窗口上的deviceorientation事件。
window.addEventListener("deviceorientation", function(e){
const {absolute, alpha, beta, gamma} = e;
});根据MDN
https://stackoverflow.com/questions/62733986
复制相似问题