element.animate(..) freezes the translate property at the end (Web animations)
Reported by
cyril.au...@gmail.com,
Aug 12 2016
|
|||||
Issue descriptionUserAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2824.0 Safari/537.36 Example URL: https://jsfiddle.net/9ot7w02g/12/ Steps to reproduce the problem: 1. https://jsfiddle.net/9ot7w02g/12/ 2. 3. What is the expected behavior? When clicking play, if the animation started on an icon it should end one icon below. What went wrong? It doesn't work, it finishes at the same icon, it's not possible to modify foo.style.transform from devtools Does it occur on multiple sites: N/A Is it a problem with a plugin? No Did this work before? N/A Does this work in other browsers? No Firefox Chrome version: 54.0.2824.0 Channel: n/a OS Version: 10.0 Flash Version: Shockwave Flash 22.0 r0 Firefox somewhat work to show the next emoji, but it's also frozen when trying to change it from devtools: http://i.imgur.com/CRj76bz.gif
,
Aug 12 2016
Excuse me rnimmagadda, like most often, I'm not good at describing the issue: Testing on Version 54.0.2826.0 canary (64-bit): https://jsfiddle.net/9ot7w02g/13/ on the gif, when I press play, in console I see 'before' and an emoji, the one that was selected on screen so it's fine. On finish, I see in console the next emoji, this one correspond to the current style that I tried to apply, but you notice that at the end of animation, it's still the same emoji than an start. Actually it's impossible to change the transform property of this element from devtools, it's not reflected visually at all. Finally when starting another animation, the changes get applied, magically, it's unfreezed when loading a new animation
,
Aug 16 2016
It's due to fill:'forwards' as explained here https://bugzilla.mozilla.org/show_bug.cgi?id=1294601
,
Aug 16 2016
==================================== Good Build: 51.0.2662.0 Base Position: 378134 Bad Build: 51.0.2675.0 Base Position: 380818 ===================================== Able to repro this issue on Windows 7, MAC (10.11.6) & Ubuntu Trusty (14.04) for the Google Chrome Stable Version - 52.0.2743.116 This is a regression issue broken in M52, below mentioned is the bisect info: CHANGELOG URL: https://chromium.googlesource.com/chromium/src/+log/89de433c4e57f4de24e6fff63b852af02cf0b58a..209701e1c7ecd85853d576b62ef98aab3047e31e Suspecting Commit: c0846df098b6a1ba6487d7c351d1f3bb0d6f7690 Review URL: https://codereview.chromium.org/1720403002 @suzyh: Could you please look into the issue, and if it has nothing to do with your changes and if possible please do assign it to the concerned owner. Thank you.
,
Aug 16 2016
Sure, I'll take a look.
,
Aug 17 2016
The example uses a new syntax that was introduced in the patch referenced in #4. To test behaviour prior to that,
"""
{transform:[foo.style.transform, `translateY(${y-480}px)`]},
"""
should be replaced with
"""
[{transform:foo.style.transform}, {transform:`translateY(${y-480}px)`}],
"""
See https://jsfiddle.net/9ot7w02g/14/
Proceeding on the assumption that it is not a regression....
It's not clear to me what exactly the bug is here. Adding logging statements before and after "foo.style.transform = ..." in the onfinish handler shows that the value is modified, although it is not repainted.
Since there is a fill:'forwards', it's not clear to me which value of foo.style.transform is expected to 'win out': the one from the fill, or the one from the onfinish handler.
I'll get a second opinion, but to move forward I think we'll need a simpler test case that has a clear expected behaviour.
,
Aug 17 2016
Yes, I was using this new syntax, and testing on Canary. By the way, again removing fill: 'forwards' from the options makes it work like I wanted, I guess this options kind of 'freeze' the animated property just after. Thanks for you inputs
,
Aug 17 2016
|
|||||
►
Sign in to add a comment |
|||||
Comment 1 by rnimmagadda@chromium.org
, Aug 12 2016Components: Blink>Animation
Labels: Needs-Feedback
2.6 MB
2.6 MB View Download