- From: Simon Pieters <simonp@opera.com>
- Date: Mon, 21 Dec 2015 09:33:27 +0100
- To: "Trav Stone" <travtrilogi@gmail.com>, "Rick Byers" <rbyers@chromium.org>
- Cc: "www-style@w3.org" <www-style@w3.org>, "Emil A Eklund" <eae@chromium.org>, "Boris Zbarsky" <bzbarsky@mit.edu>, "Robert O'Callahan" <robert@ocallahan.org>
On Fri, 18 Dec 2015 18:55:20 +0100, Trav Stone <travtrilogi@gmail.com>
wrote:
> Hi Simon,
>
> Many thanks! Had no idea Range existed, but it does indeed return the
> value
> I need. I'd still argue that your proposed API is a bit easier to use
> than
> Range, but perhaps I'm in the minority with that viewpoint.
>
> At any rate, I really appreciate your response- very helpful!
The proposed API is not at all instead of Range. It's instead of
Element#scrollWidth etc.
On Fri, 18 Dec 2015 19:08:41 +0100, Rick Byers <rbyers@chromium.org> wrote:
> I had thought an API like getScrollRect wasn't necessary because
> getBoundingClientRect + fractional scrollTop/scrollLeft covered all the
> scenarios. But if there are scenarios that need fractional
> scrollHeight/scrollWidth (or maybe even if it's demonstrably easier to
> use
> getScrollRect), then I'd certainly support your getScrollRect proposal.
Consider Trav's case, but there is a scrollbar visible. Then
getBoundingClientRect doesn't return the width you want. You want the
width excluding the scrollbar, if there is one.
Or if there's a border, then getBoundingClientRect includes the border.
But getBoxQuads() lets you select the content box... An alternative would
be to extend getBoxQuads() with a way to get the "content minus
scrollbars" box.
elm.getBoxQuads({box: 'scroll'})[0].getBounds().width
It's more wordy than elm.scrollWidth (and elm.getScrollRect().width),
although you can support transformed boxes.
--
Simon Pieters
Opera Software
Received on Monday, 21 December 2015 08:34:01 UTC