как работает jquery fadeIn? То же самое с animate()
Я люблю простой jQuery fadeIn()
функция, особенно потому, что она работает без необходимости устанавливать какие-либо значения непрозрачности для селектора! Просто установите его в display:none
и с помощью fadeIn()
всегда работает.
однако я не использую jQuery для моего текущего проекта, но zepto.js. Zepto поставляется только с animate()
, а не fadeIn()
.
интересно, как я могу создать такое же поведение с функцией animate! Какие свойства я должен анимировать здесь?
$('#selector').animate({
display: "block",
opacity: 1
}, 500, 'ease-out')
спасибо заранее
3 ответов
(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)
Если Zepto работает как jQuery $('.example').fadeIn();
следует сделать трюк.
EDIT: Trejder прав, отрегулировал детали.
функция jQuery fadeIn - это просто ярлык для функции jQuery animate. Все это меняет прозрачность от 0 до 1 в течение периода времени, увеличивая значение непрозрачности.
// 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 );
};
});
вы можете попробовать это. Я сделал небольшую демонстрацию. вы должны сделать его непрозрачным 0, а затем сделать его отображаемым: блокировать, а затем анимировать непрозрачность.
проверьте эту скрипку http://jsfiddle.net/dTRhQ/
однако, это делается в jq, я надеюсь, что вы можете найти подходящую реализацию в своей структуре