Я знаю, что один из ответов для определения портретного или ландшафтного узла -
window.innerWidth > window.innerHeight
Но после 60-й версии Chrome определение innerWidth и innerHeight изменилось, и теперь оно представляет область просмотра макета.Поэтому, как только клавиатура открыта, хотя устройство находится в портретном режиме, window.innerHeight становится меньше, чем window.innerWidth, и это говорит о том, что это альбомный режим.
Также обратите внимание на следующие вещи -
- Не хочу ставить определенные браузерные проверки.
- При изменении ориентации некоторые устройства также запускают событие изменения размера, прежде чем фактически изменить значение ориентации. Так что, в этом случае при обратном вызове изменения размера, ориентация устройствана самом деле будет альбомной ориентацией, но значение ориентации будет отображаться как портрет.
- window.screen.orientation также не совместимо с различными браузерами.