Я пытаюсь использовать различные методы для запуска события при повороте устройства. Он работает на всех браузерах Android. Он работает во всех браузерах iOS, кроме Safari. Я пробовал 1 iPhone и 2 iPads, все на iOS7, и просто не могу запустить это событие.
Я пытался:
JQuery:
$( window ).resize(function() {
$(window).bind("resize", function(){
js:
document.addEventListener("orientationchange", updateOrientation);
window.onresize = function(event) {
Не повезло, не повезло. Все они работают во всех браузерах, но не работают в iOS Safari. Самое странное, что иногда оно срабатывает, возможно, один или два раза, за 20 поворотов. В других случаях никакого события вообще нет. Что происходит? У кого-нибудь есть опыт? Я что-то делаю неправильно, или это странная ошибка?
Мальчик, поддержка типа orientChange - это супер изворотливость по сравнению с мобильными браузерами. Поэтому, чтобы не беспокоиться об этом, я просто следовал этому простому гарантированному подходу, который вообще не полагался на это событие:
function findOrientation()
{
if(window.innerHeight > window.innerWidth){
return 'portrait';
} else {
return 'landscape';
}
}
function checkOrientation() { //to be run every X seconds by setInterval below
var currentPortraitOrLandscape = findOrientation();
if(currentLandscapeOrPortrait != window.landscapeOrPortrait) {
doMyOrientationChangeCode();
}
}
window.portraitOrLandscape = findOrientation();
setInterval(checkOrientation, 800); //check around once a second if they have reoriented