2009-12-10 22 views

回答

1
window.scrollBarWidth = function() { 
    document.body.style.overflow = 'hidden'; 
    var width = document.body.clientWidth; 
    document.body.style.overflow = 'scroll'; 
    width -= document.body.clientWidth; 
    if(!width) width = document.body.offsetWidth - document.body.clientWidth; 
    document.body.style.overflow = ''; 
    return width; 
} 
+0

这是否很好地交叉浏览器?在什么浏览器下测试了这段代码? – marcgg 2009-12-10 09:53:10

2

有没有什么办法工作跨浏览器(IE有问题,总是),对不起

+1

我不相信也没办法。 – 2009-12-10 10:21:46

0

这里是MooTools的一个例子,我刚刚完成全跨浏览器测试。

http://jsfiddle.net/jP6q2/2/

长话短说:

var body = $$('body')[0]; 

var test = new Element('div', {'style':'visibility:hidden; width: 100px; height: 100px; overflow: scroll;'}); 

test.inject(body); 

var scrollbar = { 
    width: test.offsetWidth - test.scrollWidth 
    , height: test.offsetHeight - test.scrollHeight 
} 

test.dispose();