Как определить, когда изменяется высота вашей страницы? - PullRequest
9 голосов
/ 11 декабря 2008

У меня есть тяжелое приложение на JavaScript, в котором есть такие виджеты, как выпадающие списки автозаполнения, вкладки и так далее. Иногда, когда выпадающие списки появляются и исчезают, или когда вы переключаетесь между вкладками, это меняет высоту документа. Это может вызвать раздражение, если полоса прокрутки появляется и быстро исчезает, потому что она смещает страницу. Я хотел бы определить, когда страница меняет свою высоту, поэтому я могу до сих пор зафиксировать ее максимальную высоту, чтобы при появлении полосы прокрутки она не исчезала лишь секунду спустя. Есть предложения?

Обновление: onresize не будет работать, потому что это для изменения размера области просмотра / окна - я хочу изменения в длине документа. Я не знал о функции часов, похоже, она будет работать по крайней мере для FF, но IE не поддерживает ее.

Ответы [ 4 ]

2 голосов
/ 15 января 2016

Я верю, что на этот вопрос уже ответили на stackoverflow здесь: Обнаружить изменение высоты документа

Обычно вам нужно сохранить текущую высоту документа и постоянно проверять изменения с помощью тайм-аута

Элемент для просмотра здесь - document.body.clientHeight (или в jquery $ (document) .height ())

0 голосов
/ 11 декабря 2008

Одной из идей было бы использование метода watch () для свойства clientHeight:

document.body.watch("clientHeight", function(property, oldHeight, newHeight) {
  // what you want to do when the height changes
});

Указанная вами функция будет выполняться при каждом изменении указанного свойства. В любой момент вы можете использовать метод unwatch (), чтобы остановить его.

0 голосов
/ 11 марта 2015

Вы можете изменить размер события, чтобы перехватить изменение размера окна с помощью jquery следующим образом:

$(window).resize(function(){
   // your code to check sizes and take action
  }
);

Вы также можете отслеживать изменения в документе (не проверено)

$(document).resize(function(){
   // your code to check sizes and take action
  }
);
0 голосов
/ 11 декабря 2008

Я думаю, что вы можете перехватывать события "onresize"

вот ссылка на описание w3schools.com

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...