Существует ли простой путь в jQuery для обнаружения, когда полосы прокрутки появляются и исчезают на отделении, которое имеет overflow:auto? (Как событие? Пальцы, скрещенные...)
(Я предпочел бы не должным быть смотреть в разгар содержания отделения),
Как уже говорили другие, простого пути нет. Вот код, который я использовал в прошлом, чтобы определить, присутствует ли полоса прокрутки.
// Used like $('#my-id').hasScrollbar();
jQuery.fn.hasScrollbar = function() {
var scrollHeight = this.get(0).scrollHeight;
//safari's scrollHeight includes padding
if ($.browser.safari)
scrollHeight -= parseInt(this.css('padding-top')) + parseInt(this.css('padding-bottom'));
if (this.height() < scrollHeight)
return true;
else
return false;
}
Вам нужно будет вручную вызвать это после добавления или удаления содержимого из div, и он, вероятно, будет работать только в том случае, если вы вызовете его для видимых элементов, но это лучше, чем начинать с нуля.
Насколько я знаю, для этого не существует события.
Однако, вы "могли бы" написать свое собственное специальное событие для этого, я полагаю, вам нужно проверить
высоту и ширину.
Должна быть возможность обнаружить полосы прокрутки, если .innerHeight
превышает .outerHeight
значение элемента.