Все еще сложно определить наличие полосы прокрутки с помощью jQuery? - PullRequest
2 голосов
/ 03 апреля 2010

Я знаю, что обнаружение наличия полосы прокрутки должно быть одной из тех неуловимых вещей, через которые мы все должны страдать.До сих пор я читал, что вы не можете реально обнаружить наличие полосы прокрутки, используйте только подсказки в DOM, чтобы узнать, присутствуют ли они , может , и это нельзя сделать менее чем за 30 строк.кода.

Это звучит немного невозможным для меня сейчас, когда мы находимся в 2010 году. Есть ли в jQuery надежное кросс-браузерное решение, которое заботится об этом и работает, по крайней мере, большую часть времени?Любая помощь, пожалуйста, я дергаю за волосы, половина из них уже на полу.

1 Ответ

3 голосов
/ 03 апреля 2010

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

Логически вы хотите вызвать эту функцию на document ready и window resize.

Он также имеет дело с несоответствиями, которые могут возникнуть в Opera (строка 2) и IE7 (строка 6) .

function scrollbar() {
    var viewportHeight = window.innerHeight ? window.innerHeight : $(window).height();

    if (jQuery.browser.msie) {
        if(parseInt(jQuery.browser.version) == 7) {
            viewportHeight -= 3;
        }
    }

    if(viewportHeight <= $('#wrapper').height()) {
        return true;
    } else {
        return false;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...