Closed Bug 522142 Opened 10 years ago Closed 9 years ago

-moz-transition does not support transitioning between '0' and a percentage value

Categories

(Core :: CSS Parsing and Computation, defect, P2, minor)

defect

Tracking

()

RESOLVED FIXED
mozilla2.0b7
Tracking Status
blocking2.0 --- betaN+

People

(Reporter: p_gasston, Assigned: dbaron)

References

(Blocks 1 open bug, )

Details

User-Agent:       Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.3a1pre) Gecko/20091013 Minefield/3.7a1pre
Build Identifier: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.3a1pre) Gecko/20091013 Minefield/3.7a1pre

In a demo I made, I have the following code:

#blur1 {
left: -100%;
-moz-transition: left 1s linear;
}

.container:hover #blur1 { left: 0; }

When hovering the container, the transition effect did not occur. When I added a percentage unit to the hover state declaration:

.container:hover #blur1 { left: 0%; }

The transition occurred as expected.

Reproducible: Always

Steps to Reproduce:
1. Visit the demo (http://www.broken-links.com/tests/manga/index_bug.html)
2. Hover the mouse over the picture area
Actual Results:  
The (striped) background image does not smoothly transition into place.

Expected Results:  
It should transition smoothly, as in the third (bottom) demo on this page: http://www.broken-links.com/tests/manga/index.html
Confirmed on Windows:
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.3a1pre) Gecko/20091016 Minefield/3.7a1pre
The issue is that we currently only support animating between lengths, or between percentages, and not from one to the other.  We treat 0 as a length.

We should special-case this one for 1.9.3 if we don't get the general length/percentage case fixed by then.
Status: UNCONFIRMED → NEW
blocking2.0: --- → ?
Component: Layout → Style System (CSS)
Ever confirmed: true
QA Contact: layout → style-system
Summary: -moz-transition does not work on 0 value without units → -moz-transition does not support transitioning between '0' and a percentage value
(In reply to comment #2)
> The issue is that we currently only support animating between lengths, or
> between percentages, and not from one to the other.  We treat 0 as a length.

To be clear:  this only applies to properties for which % units require layout-dependent calculations.  For those where % is resolved in the style code, this isn't an issue.
Depends on: 536539
blocking2.0: ? → beta1
Priority: -- → P2
Is this the same issue?  This works:

    #mybox1 {width: 50%;}
    #mybox1:hover {width: 100%; -moz-transition-duration: 1s;}

This doesn't:

    #mybox2 {width: 50%;}
    #mybox2:hover {width: auto; -moz-transition-duration: 1s;}

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.3a4pre) Gecko/20100329 Minefield/3.7a4pre
(In reply to comment #4)
> Is this the same issue?  This works:
> 
>     #mybox1 {width: 50%;}
>     #mybox1:hover {width: 100%; -moz-transition-duration: 1s;}
> 
> This doesn't:
> 
>     #mybox2 {width: 50%;}
>     #mybox2:hover {width: auto; -moz-transition-duration: 1s;}
> 
> Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.3a4pre) Gecko/20100329
> Minefield/3.7a4pre

I'm not sure if we need separate bugs for these issues, but bug 536539 mentions units like "auto" specifically (this bug is depending on that bug, for now). I am in great need of the functionality in these two bugs (for cases like yours, especially) myself, but currently work on bug 363249 needs to be finished for it to be possible.
That's a separate issue from *this* bug, but probably the same as bug 536539; this bug should be about the very specific and more-easily-solvable issue of '0' and percentages.
OS: Linux → All
Hardware: x86 → All
Bumping this to beta2 per beta re-triage with dbaron.  If this should indeed block beta1, please re-nom.
blocking2.0: beta1+ → beta2+
Moving to betaN, will need to be pulled into one of the beta milestones.
blocking2.0: beta2+ → betaN+
Depends on: 520234
Fixed by bug 520234.
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla2.0b7
You need to log in before you can comment on or make changes to this bug.