Если вы подключаетесь в случае изменения размера и сделать много обработки на каждом изменении, вы будете замораживать браузер, потому что событие изменения размера вызывает несколько сотен в секунду на рабочем столе.
Вы должны сделать некоторые дребезга на функции:
function updateOrientation() {
// Detect whether device supports orientationchange event, otherwise fall back to the resize event
// Genius solution from http://stackoverflow.com/a/2307936
var supportsOrientationChange = "onorientationchange" in window,
orientationEvent = supportsOrientationChange ? "orientationchange" : "resize", newAngle;
if(supportsOrientationChange){
newAngle = window.orientation;
switch(newAngle){
case 0:
case 180: newOrientation = 'portrait'; break;
case 90:
case -90: newOrientation = 'landscape'; break;
}
} else {
if(document.width < document.height){
newOrientation = 'portrait'
} else {
newOrientation = 'landscape'
}
}
// Do some processing here
/*
* Beautiful debouncing for resize event firing too much on the PC
* by Pim Jager http://stackoverflow.com/a/668185/930987
*/
resizeEvent = false;
window.addEventListener(orientationEvent, function() {
if(!resizeEvent) {
clearTimeout(resizeEvent);
resizeEvent = setTimeout(updateOrientation, 500)
}
})
}
???? Как это каким-либо образом, форма или форма помогают ему узнать размер окна в любой момент времени? Это не так. Это излишний, а также простой неактуальный. – Archer
Ну, через 10 минут, когда он проверит простой размер(), вернется для этого решения. Было бы проще, если бы вместо «Сделать некоторую обработку здесь» я бы поставил «winWidth = $ (window) .width(); $ (« # status »). Text (winWidth);»? Это общее решение проблемы, возможно, поможет некоторым другим. –