jQuery animate to transparent
I want to animate background from coloured to transparent. I have code like this:
$('.selector')
.animate({
'background-color' : 'transparent'
}, 2000, function () {
$(this).css({ 'background-color' : '' });
});
It is quite complicated, because:
I need to remove the style=""
after the animation finishes, because otherwise the style
would keep overriding the CSS class set by the .hover
handler. So I used this trick: jQuery - remove style added with .css() function
I don't know of any neater way to wait for effects to complete in jQuery, see: How to wait for effect queue to complete in jQuery call sequence
So, is there any simpler solution? Some more clever use of jQuery effects which wouldn't be so complicated?
I also tried the trick with .animate(,1)
:
$('.selector')
.animate({
'background-color' : 'transparent'
}, 2000)
.animate({'background-color': ''}, 1);
but it doesn't work in this case.
css
.animated {-webkit-transition:background 0.4s ease;-moz-transition:background 0.5s ease;-ms-background 0.5s ease;background 0.5s ease;}
.selector {background:red}
.transparent_background {background: transparent};
html
<div class="selector animated"></diV>
js
$(".selector").addClass("transparent_background");
http://jsfiddle.net/UEyc6/
Let CSS do the animation, and fallback to javascript when it's not supported with (for example) Modernizr: http://modernizr.com/
if (Modernizr.csstransitions) {
// Animate background color
$('.element').addClass('animate-background-color');
} else {
// use javascript animation.
}
And Your css:
.element {
-webkit-transition: background-color .5s ease-out 0.1s;
-moz-transition: background-color 5s ease-out 0.1s;
transition: background-color .5s ease-out 0.1s;
background-color: rgba(121,123,123,1);
}
.element.animate-background-color {
background-color: rgba(121,123,123,0);
}
Fiddle for the css animation: http://jsfiddle.net/c5PHf/
链接地址: http://www.djcxy.com/p/94892.html上一篇: 使用node.js作为简单的Web服务器
下一篇: jQuery的动画透明