- From: Simon Fraser <smfr@me.com>
- Date: Tue, 02 Jun 2009 21:18:09 -0700
- To: "Tab Atkins Jr." <jackalmage@gmail.com>
- Cc: Mark <markg85@gmail.com>, Giovanni Campagna <scampa.giovanni@gmail.com>, Brad Kemper <brad.kemper@gmail.com>, Boris Zbarsky <bzbarsky@mit.edu>, www-style@w3.org
On Jun 2, 2009, at 10:25 AM, Tab Atkins Jr. wrote: > In your case, you have an abrupt transition like: > > div { > background: url( foo.jpg ); > } > div:hover { > background: url( bar.jpg ); > } > > And you want to make it into a smooth transition by crossfading from > one image to the other. This is exactly what the Transitions module > is designed for, and crossfading between images does seem to be the > best idea in general for this sort of thing. So we just need to > extend the Transitions module so that it specifies how to transition > the background-image property. Transitions applied to backgrounds like this are a little different from the transitions that the draft talks about: <http://www.w3.org/TR/2009/WD-css3-transitions-20090320/> In the draft, and the current WebKit implementation, transitions are implemented by changing the value of an existing CSS property on a timer, and re-rendering the content for each frame. While the transition is running, getComputedStyle() will return the currently displayed value of the property. If we decide to do cross-fading of background images without any additional new properties, we'll need to extend the spec to say what getComputedStyle() returns for background-image while the transition is running. The answer is not obvious to me. In this sense, the earlier suggestion of adding a background-opacity property makes sense; we then get back to the state where the engine can animate this new property, and getComputedStyle returns something sensible. To get a crossfade effect, the author would then have to do something like this: #foo { transition: background-image 2s; background-image: url(apple.jpg), url(orange.jpg); background-opacity: 1, 0; } #foo.after { background-opacity: 0, 1; } This is no longer automatic cross-fading, but it seems to fit better with the current notion of transitions. There's less magic here. Simon
Received on Wednesday, 3 June 2009 04:18:47 UTC