할 수는 있지만 완벽하지는 않습니다. this 게시물에서 코드를 복사 :
// 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;
}
당신은 스크롤 막대가 존재하는지 조회 할 수있다. 이 전에, 그러나, 당신이 나타나는 스크롤하기 전에 뷰포트의 폭 전역 변수해야합니다 :
var viewportWidth = $(window).width();
그리고 위의 기능을 실행 한 후를, 당신의 새로운 뷰포트의 폭이 viewportWidth
을 비교할 수 스크롤 막대가있는 창 margin-right
body
의 차이가 음수입니다.
'window.resize' 이벤트 핸들러를 사용하면'document'와'window'의 높이를 비교하여 스크롤바가 필요할 때를 감지하고 필요에 따라 몸체의 오른쪽 여백을 추가하거나 제거 할 수 있습니다. javascript 솔루션, 그리고 약간의 연습이 더러워진 것 같습니다. – jackwanders