我在旋转设备时尝试了各种方法来触发事件。它适用于Android的所有浏览器。它适用于iOS上的所有浏览器,Safari除外。我已经尝试了1部iPhone和2部iPad,全部都在iOS7上,而且无法解决这个问题。
我试过了:
jquery的:
$( window ).resize(function() {
$(window).bind("resize", function(){
js:
document.addEventListener("orientationchange", updateOrientation);
window.onresize = function(event) {
没有运气,没有任何运气。它们都适用于所有浏览器,但在iOS Safari中失败。最令人遗憾的是,有时它会在20次旋转中发射一次或两次。其他时候,根本没有事件。到底是怎么回事?有人对此有经验吗?我做错了什么,或者这是一个奇怪的错误?
答案 0 :(得分:2)
男孩,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