On Feb 3, 2011, at 7:49 AM, W. James MacLean wrote:
What is the intended behaviour if someone applies the following style to an
element:
-webkit-transform: scale3d(0.8, 0.8, 0)
?
Right now (in Chromium and Safari) there are two different behaviours
depending whether the GPU is involved or not.
With gpu acceleration the objects renders properly, but stops responding to
mouse events. This is due to the fact that elements with non-invertible
transforms are excluded from hit testing.
Without gpu acceleration, the object renders properly and continues to
respond to mouse events. This is due to the fact that when makeRenderable()
is called on the element's transform, it is forced to be affine and it
becomes invertible in the process.
So which, if either, is correct?
The following quote is found at
http://www.w3.org/TR/css3-2d-transforms/
In some cases, an animation might cause a transformation matrix to be
singular or non-invertible. For example, an animation in which scale moves
from 1 to -1. At the time when the matrix is in such a state, the transformed
element is not rendered.
In this case, neither behaviour seems quite consistent, since in both case
the element is rendered. Then again, this is -webkit-transform, not CSS
transform, so are the intended outcomes different?
Please file a bug on this issue.
Since elements are planar, scaling in the Z plane doesn't really make much
sense on the appearance of the element itself, but it will affect the
z-positions of children which project out of the plane. I think we may need to
clarify this in the 3D transforms spec, and suggest that the element remains
visible and hit-testable even when its z-scale is 0.
Simon
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev