WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED WONTFIX
117655
Javascript Animation playing through layers of background SVG
https://bugs.webkit.org/show_bug.cgi?id=117655
Summary
Javascript Animation playing through layers of background SVG
Nick
Reported
2013-06-14 14:27:59 PDT
Chromium bug
https://code.google.com/p/chromium/issues/detail?id=241328
- affects Safari 7 and iOS7 Safari What steps will reproduce the problem? 1. Visit
https://create.passkit.com
click on any one of the 5 pass type images 2. 3. What is the expected result? jQuery slideToggle should quickly hide the image in the simulated phone window and a new image should slowly toggle back within the bounds of the iPhone window. Has been working in v25 and earlier versions of Chrome, still working on Chrome for iPhone and all other major browsers. Successful webkit result can be seen by visiting the same page in Safari 6, Firefox 20 or IE 10. What happens instead? jQuery animation plays slowly, not completing but still triggering the onComplete slideToggle. The replaced image is peculiarly rendered and animated outside the bounds of it's parent container and in between 2 layers of a background SVG image (
https://d1ye292yvr7tf6.cloudfront.net/images/iphone.svg
- the title bar of this image is a transparent gradient). Please provide any additional information below. Attach a screenshot if possible. On the attached image, you can see the outline of a background object (white rectangle with rounded corners) between the black background layer and transparent overlay of a background SVG image - the entire object should not be rendered outside the bounds of it's parent and certainly should not appear between layers of an independent SVG image.
Attachments
Add attachment
proposed patch, testcase, etc.
Radar WebKit Bug Importer
Comment 1
2013-06-14 14:28:19 PDT
<
rdar://problem/14160785
>
Joseph Pecoraro
Comment 2
2013-06-17 11:29:50 PDT
The chromium bug had supposedly narrowed it down to this WebKit range 141440:141478: <
http://build.chromium.org/f/chromium/perf/dashboard/ui/changelog_blink.html?url=%2Ftrunk&range=141440%3A141478&mode=html
>
Joseph Pecoraro
Comment 3
2013-06-17 12:15:53 PDT
Doing my own bisecting I see it breaking with
r138184
: <
http://trac.webkit.org/log/trunk/?rev=138184&stop_rev=138184
> Implement CSS parsing for CSS transitions unprefixed.
https://bugs.webkit.org/show_bug.cgi?id=104804
<
http://trac.webkit.org/changeset/138184
> @Nick, it looks like the CSS on the page is accidentally too broad when unprefixed transitions are supported. This snippet of CSS: #pass, #back, details, .animate { -webkit-transition: -webkit-transform .7s linear; -moz-transition: -moz-transform .7s linear; -o-transition: -o-transform .7s linear; transition: all .7s linear } Now that some browsers (Safari / Chrome) support unprefixed transition, the page went from transitioning only "-webkit-transform" to transitioning "all" properties, which is producing the unexpected results. You should update the content to better handle the case where transition is supported unprefixed. For example, making this "transition: -webkit-transform .7s linear" the animation behaves as expected. This case is a little tricky, since "transition" is supported unprefixed, but it doesn't look like "transform" is supported unprefixed yet. I suppose you could go with: #pass, #back, details, .animate { /* Vendor prefixed */ -webkit-transition: -webkit-transform .7s linear; -moz-transition: -moz-transform .7s linear; -o-transition: -o-transform .7s linear; /* Unprefixed transition and prefixed or unprefixed transform. transition-property: -webkit-transform -moz-transform -o-transform transform; transition-duration: .7s; transition-timing-function: linear; }
Joseph Pecoraro
Comment 4
2013-06-17 12:16:37 PDT
(In reply to
comment #3
)
> /* Unprefixed transition and prefixed or unprefixed transform.
Of course this comment should be ended on this line with */ =)
Joseph Pecoraro
Comment 5
2013-06-17 12:20:05 PDT
(In reply to
comment #3
) @Nick, actually doing the following should be just fine: #pass, #back, details, .animate { -webkit-transition: -webkit-transform .7s linear; -moz-transition: -moz-transform .7s linear; -o-transition: -o-transform .7s linear; transition: transform .7s linear } If both unprefixed version aren't supported, then the browser should just fallback to the prefixed lines above the unprefixed line.
Nick
Comment 6
2013-06-17 18:06:08 PDT
Confirm that CSS fix works, thanks for your help Joe.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug