サイズ変更イベントを使用する
サイズ変更イベントには、 orientationchange後の適切な幅と高さが含まれますが、すべてのサイズ変更イベントをリッスンする必要はありません。したがって、向きを変更した後、1回限りのサイズ変更イベントリスナーを追加します。
Javascript:
window.addEventListener('orientationchange', function() {
// After orientationchange, add a one-time resize event
var afterOrientationChange = function() {
// YOUR POST-ORIENTATION CODE HERE
// Remove the resize event listener after it has executed
window.removeEventListener('resize', afterOrientationChange);
};
window.addEventListener('resize', afterOrientationChange);
});
jQuery:
$(window).on('orientationchange', function() {
// After orientationchange, add a one-time resize event
$(window).one('resize', function() {
// YOUR POST-ORIENTATION CODE HERE
});
});
タイムアウトを使用しないでください
タイムアウトは信頼できません。一部のデバイスは、ハードコードされたタイムアウト内で方向の変更をキャプチャできません。これは、予期しない理由、またはデバイスの速度が遅いことが原因である可能性があります。高速デバイスでは、逆にコードに不要な遅延が発生します。