so - using David's method i came up with the following "moo" Version -
works pretty well (in the browsers i've tested):
getScrollbarSize: function()
{
var X = new Element('div',{
'styles' : {
'width' : '100px',
'height' : '100px',
'overflow' : 'scroll',
'position' : 'absolute',
'top' : '-200px',
'left' : '-200px'
}
}).inject(document.body,'top');
var V = {
'width' : X.offsetWidth - X.clientWidth,
'height' : X.offsetHeight -
X.clientHeight
};
X.destroy();
return V;
}
Maybe it is of use for the one or the other.
On 30 Okt., 16:57, Fli7e <[email protected]> wrote:
> woops that one was fast Arian :-)
>
> Well i was reading David's Blog but it seems i overlooked it. Thanks
> for the pointing - seems i slightly goes the same way with the
> calculations but his approach of using a div seems more crisp.
>
> *lays down and praise the day the Highlord Walsh was born*
>
> On 30 Okt., 16:51, Arian Stolwijk <[email protected]> wrote:
>
>
>
>
>
>
>
> > You're not reading davidwalshblog?!
> > —http://davidwalsh.name/detect-scrollbar-width
>
> > On Sun, Oct 30, 2011 at 4:49 PM, Fli7e <[email protected]> wrote:
> > > Hi,
>
> > > i recently was in need of the exaxt Pixelsize of the client's
> > > scrollbars. After searching up and down the web i came up with the
> > > following function (its not something special) - which has been
> > > inspired by several sources:
>
> > > getScrollbarSize: function()
> > > {
> > > var db = document.body;
> > > var prevOverflow = db.getStyle('overflow');
> > > db.setStyle('overflow','hidden');
> > > var w = db.clientWidth;
> > > var h = db.clientHeight;
> > > db.setStyle('overflow','scroll');
> > > var S1 = {
> > > 'width' : w -= db.clientWidth,
> > > 'height' : h -= db.clientHeight
> > > };
> > > if(!S1.width) S1.width = db.offsetWidth -
> > > db.clientWidth;
> > > if(!S1.height) S1.height = db.offsetHeight
> > > - db.clientHeight;
> > > db.setStyle('overflow',prevOverflow);
> > > return S1;
> > > }
>
> > > Is there any mootools internal function i overlooked or is there any
> > > better crossbrowser way of doing the calculations? I saw jQuery is
> > > using textarea stuff and browser dependant divs .. i tried their code
> > > (converted to moo / native JS) but was never realy working (only in
> > > mozilla).
>
> > > Any Feedback appreciated
>
> > > Thanx