Полоса прокрутки появляется / исчезают событие в jQuery?

Существует ли простой путь в jQuery для обнаружения, когда полосы прокрутки появляются и исчезают на отделении, которое имеет overflow:auto? (Как событие? Пальцы, скрещенные...)

(Я предпочел бы не должным быть смотреть в разгар содержания отделения),

16
задан tshepang 28 February 2014 в 16:32
поделиться

2 ответа

Как уже говорили другие, простого пути нет. Вот код, который я использовал в прошлом, чтобы определить, присутствует ли полоса прокрутки.

// 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, и он, вероятно, будет работать только в том случае, если вы вызовете его для видимых элементов, но это лучше, чем начинать с нуля.

6
ответ дан 30 November 2019 в 22:55
поделиться

Насколько я знаю, для этого не существует события.
Однако, вы "могли бы" написать свое собственное специальное событие для этого, я полагаю, вам нужно проверить высоту и ширину.

Должна быть возможность обнаружить полосы прокрутки, если .innerHeight превышает .outerHeight значение элемента.

1
ответ дан 30 November 2019 в 22:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: