Все еще сложно определить наличие полосы прокрутки с помощью jQuery?
Я знаю, что обнаружение наличия полосы прокрутки должно быть одной из тех неуловимых вещей, через которые мы все должны пережить. До сих пор я читал, что вы не можете обнаружить присутствие полосы прокрутки, используйте только подсказки в DOM, чтобы узнать, могут ли они присутствовать, и это нельзя сделать менее чем в 30 строках кода.
Сейчас, когда мы находимся в 2010 году, это звучит немного невозможным. Есть ли в jQuery надежное кросс-браузерное решение, которое позаботится об этом и будет работать по крайней мере большую часть времени? Любая помощь, пожалуйста, я дергаю за волосы, половина из них уже на полу.
1 ответ
Возможно, не так элегантно, как вы надеялись, но это адекватная адаптация из скрипта, который я недавно написал, для расчета высоты области просмотра.
Логично, что вы хотите вызвать эту функцию на 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;
}
}