2013-05-07 80 views
2

我试图检测浏览器窗口中是否显示了滚动条。 回答像this这样的问题可以检测内容是否可以滚动,但是给出现代的操作系统和浏览器,这并不总是意味着实际上和不断是滚动条。 有谁知道如果/如何可能?如何检测浏览器窗口中是否实际存在滚动条

+0

你能仅仅是内容的大小与窗口的大小? '如果(div高度/宽度> window.height/width'? – 2013-05-07 23:20:56

+0

如果您担心OSX滚动条仅在实际滚动时可见,请勿覆盖它们,因此它们不会覆盖 – bfavaretto 2013-05-07 23:23:36

+0

^与unity/ubuntu中的叠加滚动条相同 – 2013-05-07 23:34:40

回答

0

或者:

if (document.height > $(window).height()) { 
    alert('VERTICAL SCROLLBARS'); 
} 

编辑:使用jQuery从

+0

...除了'document.height'和'window.he ight'确实存在;) – 2013-05-07 23:27:20

+0

你是对的,但它仍然在浏览器中被支持。 也许作为替代document.body.scrollHeight? http://developer.mozilla.org/en-US/docs/dom/element.scrollheight – Reko 2013-05-07 23:30:25

+0

你可能是指'document.body.clientHeight> window.innerHeight',但它不准确。一个很好的测试网站是http://example.iana.org/ - 在控制台中试用它,使控制台更高更短,使滚动条出现/消失(编辑:'document.body.scrollHeight'可能是关键,是啊) – 2013-05-07 23:31:27

0
function getScrollBarState() { 
    var result = {vScrollbar: true, hScrollbar: true}; 
    try { 
     var root = document.compatMode=='BackCompat'? document.body : document.documentElement; 
     result.vScrollbar = root.scrollHeight > root.clientHeight; 
     result.hScrollbar = root.scrollWidth > root.clientWidth; 
    } catch(e) {} 
    return(result); 
} 

响应:How do I detect if there are scrollbars on a browser window?

相关问题