Ускоряет ли ответ скрытие фреймов во время изменения размера контейнера DIV? - PullRequest
1 голос
/ 23 сентября 2011

Народ,

У меня есть DIV, который содержит несколько IFrames (длинная история).Размер DIV может быть изменен пользователем, и iFrames изменяют размер вместе с ним.Тем не менее, процесс изменения размера является медленным и изменчивым, с изменением размера в «пакетах».

Будет ли это скрывать iFrames во время изменения размера?

Есть ли лучшая практика для временного скрытия iFrame?Кажется, я помню людей в других местах, которые рекомендовали слегка экзотические методы их сокрытия, хотя я не помню, почему.

Спасибо, Энн Л.

Ответы [ 3 ]

2 голосов
/ 23 сентября 2011

Другой вариант - показать «ограничивающий прямоугольник» или «предварительный просмотр» области, в которой вы применяете изменение размера.Аналогично Пунктирная граница, которую вы видите при изменении размера примера здесь

1 голос
/ 23 сентября 2011

Один из способов решения этой проблемы - не выполнять фактическое изменение размера события resize (что приводит к изменчивости, потому что его так часто вызывают), а установить таймер изменения размера и выполнять только фактическое изменение размеракогда размер окна не изменился за секунду или две.Затем пользователь может свободно изменять размер окна, и когда он делает паузу, он размещает внутреннюю часть без какой-либо промежуточной изменчивости.В общем, это работает так:

var resizeTimer = null;

function doActualResize() {
    resizeTimer = null;
    // do your window interior resize here 
    // won't get called more than once per second because of timer
}

window.onresize = function() {
    // clear any prior timer that hasn't fired yet
    if (resizeTimer) {
        clearTimeout(resizeTimer);
    }
    // set new timer to wait for 1 second of no further resize motion
    resizeTimer = setTimeout(doActualResize, 1000);
}
1 голос
/ 23 сентября 2011

Чем меньше на экране, тем быстрее будет переформатирование.Если вы можете скрывать элементы до тех пор, пока сложное изменение DOM не будет завершено, вы в конце заставите дополнительную перерисовку, но промежуточные шаги должны быть быстрее.

...