Re: [css3-2d-transforms] [css3-3d-transforms] MouseEvent coordinates after CSS3 transform?

On Friday 2011-07-22 17:41 -0300, Denilson Figueiredo de Sรก wrote:
> If this is the case, then I believe we need some kind of DOM
> interface that convert coordinates. Maybe something like:
> Element.convertCoordinates(x, y, referenceElement);
> It would convert the x,y coordinates that are originally relative to
> referenceElement into coordinates relative to Element.

I absolutely agree that we should have such an API.  Browsers
already know how to do this sort of conversion (for handling
events), and exposing it via an API would allow authors to write
coordinate conversion code that's resilient to the addition of new

I'd also like a similar API for converting coordinates from an
event, since that's one of the most common use cases.

To quote from a private email that I wrote yesterday about the need
to propose such an API (describing a few options that we have):
# So currently we have an elementFromPoint method on the document
# object.
# We probably want methods taking:
#   (event, element) -> (x, y, z)
#   (ref_element, ref_x, ref_y, element) -> (x, y, z)
# The return value would probably be an object with .x, .y, and .z
# properties.
# Probably we want the |this| on these methods to represent either the
# origin (event or ref_element) or destination (element) coordinate
# spaces, so they'd actually have one fewer parameter.  So in other
# words, they could have syntax something like:
#   ref_element.toCoordinates(element, ref_x, ref_y)
#   event.toCoordinates(element)
# or,
#   element.coordinatesFrom(ref_element, ref_x, ref_y)
#   element.coordinatesFrom(event)
# although I think those are probably horrible names.

I'm not sure if the way I'm thinking about 3-D here is correct.  It
would also be great if somebody could think of clear, consise names
that made it clear which way the conversion was happening.


๐„ž   L. David Baron                  ๐„‚
๐„ข   Mozilla Corporation        ๐„‚

Received on Saturday, 23 July 2011 15:13:37 UTC