Using CSS3 transitions, it's possible to have a 'smooth up' and 'smooth down' effect to whatever property.
Can I have it setup to have only a 'smooth down' effect? I'd like the solution to be in CSS only, avoiding JavaScript if possible.
Logic flow:
What I want:
There's no 'transition-in' time, but there's a 'transition-out' time.
CSS transitions provide a way to control animation speed when changing CSS properties. Instead of having property changes take effect immediately, you can cause the changes in a property to take place over a period of time.
It works as follows: The overlay resting state is set to the right of the element using a margin (while the left is positioned to the left of the element). Upon hover, we set the margin to 0 without an animation. This allows the left animation to occur from the left side of the element.
I tried the following in the CSS3 Tryit Editor and it worked in Chrome (12.0.742.60 beta-m).
/* transition out, on mouseup, to white, 0.5s */ input { background:white; -webkit-transition:background 0.5s; -moz-transition:background 0.5s; -ms-transition:background 0.5s; -o-transition:background 0.5s; transition:background 0.5s; } /* transition in, on click, to black, 0s */ input:active { background:black; -webkit-transition:background 0s; -moz-transition:background 0s; -ms-transition:background 0s; -o-transition:background 0s; transition:background 0s; }
<input type="button" value="click me to see the transition effect!">
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With