Reputation: 44403
I love the simple jQuery fadeIn()
function, especially because it works without having to set any opacity values to the selector! Just setting it to display:none
and using fadeIn()
always works.
However I'm not using jQuery for my current project but zepto.js. Zepto only comes with animate()
and not with fadeIn()
.
I wonder how I can create the same behaviour with the animate function! What properties do I have to animate here?
$('#selector').animate({
display: "block",
opacity: 1
}, 500, 'ease-out')
Thank you in advance
Upvotes: 8
Views: 7391
Reputation: 4669
(function($){
$.extend($.fn, {
fadeIn: function(ms){
if(typeof(ms) === 'undefined'){
ms = 250;
}
$(this).css({
display: 'block',
opacity:0
}).animate({
opacity: 1
}, ms);
return this;
}
})
})(Zepto)
If Zepto works like jQuery $('.example').fadeIn();
should do the trick.
EDIT: Trejder is right, adjusted the parts.
Upvotes: 9
Reputation: 8360
you can try this. I made a little demo. you have to make it's opacity 0, then make it display:block then animate the opacity.
check this fiddle http://jsfiddle.net/dTRhQ/
However, that is done in jq, I hope you can find suitable implementation in your framework
Upvotes: -1
Reputation: 752
The jQuery fadeIn function is just a shortcut to the jQuery animate function. All it does it change the opacity from 0 to 1 over a period of time by incrementing the opacity value.
// Generate shortcuts for custom animations
jQuery.each({
slideDown: genFx( "show", 1 ),
slideUp: genFx( "hide", 1 ),
slideToggle: genFx( "toggle", 1 ),
fadeIn: { opacity: "show" },
fadeOut: { opacity: "hide" },
fadeToggle: { opacity: "toggle" }
}, function( name, props ) {
jQuery.fn[ name ] = function( speed, easing, callback ) {
return this.animate( props, speed, easing, callback );
};
});
Upvotes: 3