W3C home > Mailing lists > Public > www-style@w3.org > November 2009

Re: [css3-transitions] faster reversing of partially completed transitions

From: Brad Kemper <brad.kemper@gmail.com>
Date: Tue, 24 Nov 2009 18:55:07 -0800
Message-Id: <15AE7407-AF28-4C00-AA9D-948A4ECE75E1@gmail.com>
To: "Tab Atkins Jr." <jackalmage@gmail.com>
Cc: "L. David Baron" <dbaron@dbaron.org>, "www-style@w3.org" <www-style@w3.org>
On Nov 24, 2009, at 6:12 PM, "Tab Atkins Jr." <jackalmage@gmail.com>  
wrote:

> On Tue, Nov 24, 2009 at 6:47 PM, Brad Kemper <brad.kemper@gmail.com>  
> wrote:
>> On Nov 24, 2009, at 2:28 PM, "Tab Atkins Jr."  
>> <jackalmage@gmail.com> wrote:
>>
>>> If I'm going to be using an asymmetric timing
>>> function for state transitions, though, as an author I'm going to
>>> expect that they *always* run in reverse when the state transitions
>>> back to 'normal'.  This includes transition-delays.  I'm not  
>>> thinking
>>> of the transition from :link to :hover to :link as two independent
>>> changes, I think of them as being a change and then a reversal of  
>>> that
>>> change.
>>
>> But you could think of them as two independent changes, and set the
>> transition on each. I think that would be better than the UA trying  
>> to guess
>> your intentions. I don't think I would expect it to run in reverse,  
>> unless
>> (possibly, and that's the question) it hadn't finished running in  
>> forward.
>> If you didn't set the :link version (or the no pseudo-class  
>> version), then
>> unhovering would cause an abrupt change back. If that's what you  
>> wanted (and
>> sometimes it might be), you'd be done; if not, you'd notice pretty  
>> quick and
>> know what to do to fix it.
>
> Do you mean something like:
>
> a { transition-timing-function: ease-in; }
> a:hover { transition-timing-function: ease-out; }
>

Sure, according to your preference (if you set the timing function  
for :hover and wanted something other than the default initial value  
for going in reverse).  Perhaps you'd prefer it to ease out in both  
directions, for instance. Or you could have a different duration  
depending on if you were going into the hover or coming out of it. I'd  
think you'd want to set that yourself.


>
>> I can imagine, for instance, wanting a tooltip thingy that faded in  
>> (with
>> opacity) after a second or two delay when hovering, and then  
>> disappearing to
>> opacity:0 abruptly as soon as I moved the cursor away. If it was  
>> only half
>> opaque, I would want the change back to be just as abrupt (with no  
>> delay or
>> duration) as it would have been if the first transition had played  
>> out. I
>> would expect that to happen if I didn't set any transition values  
>> on the
>> :link, because the initial transition-duration without me setting  
>> it would
>> be 0.
>
> Sure, you want a transition one way, and no transition the other way.
> I don't think that's going to be the common case, though.  I think it
> should be handled by explicitly specifying such.

I think the least unexpected thing is to explicitly specify whenever  
you want a value other than the initial value.

> By default, though,
> if I specified such a transition on a tooltip, I'd expect it to
> transition in reverse when I stopped hovering.

Well, I haven't been that involved in the transition and animation  
discussions before this, so maybe I'm missing something, but I didn't  
think CSS worked that way usually. I would expect the initial value to  
be present on any state I didn't set a value for (such as the non- 
hover in this example) with properties like 'transition-duration' or  
'transition-timing-function'. 
   
Received on Wednesday, 25 November 2009 02:55:58 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 17:20:22 GMT