这是我在stackoverflow中的第一个回复,希望得到您的同意,谢谢~
我已经添加了 2 个基于 jquery UI 效果的效果,它们是 slideFadein 和 slideFadeout 您可以从名称中想象效果是什么样的:同时滑动和淡入/淡出。用法与其他效果类似:
//this will slide up and fade out the element
$("#effect").effect("slideFadein",{},500);
//this will remove the element after effect end
$("#effect").effect("slideFadein",{mode:'remove'},duration);
jquery UI 效果:jqueryui.com/effect
jsFiddle:jsfiddle.net/rw42S
您可以通过将以下代码保存在 javascript 文件中并包含在 jquery.ui.js 之后来使用这两种效果,或者将它们粘贴到 jquery.ui.js 中
这是我的代码:
(function( $, undefined ) {
$.effects.effect.slideFadeout = function(o,done){
// create element
var el = $( this ),
props = [ "width" , "height" , "opacity"],
speed = o.duration || 500,
// 'hide' or 'remove'
mode = o.mode || 'hide',
animation,wrapper;
// save properties
$.effects.save( el, props );
animation = {
height: "0px",
opacity: "0"
};
// create wrapper
wrapper = $.effects.createWrapper( el ).css({
overflow: "hidden"
});
// animate
wrapper.animate(animation,speed,'swing',function(){
if(el[mode]) el[mode]();
// restore properties
if(mode == 'hide') $.effects.restore( el, props );
// remove wrapper
$.effects.removeWrapper( el );
// callback
done();
});
};
$.effects.effect.slideFadein = function(o,done){
// create element
var el = $( this ),
speed = o.duration || 5000,
props = [ "height" , "opacity"],
animation,wrapper;
animation = {
height: el.outerHeight(true) + "px",
opacity: "1"
};
// save properties
$.effects.save( el, props );
// show element to get correct width(if the element has no width)
el.css({ height: "0px" }).show();
// create wrapper
wrapper = $.effects.createWrapper( el ).css({
overflow: "hidden",
opacity: "0",
height: "0px"
});
// restore properties
$.effects.restore( el, props );
// animate
wrapper.animate(animation,speed,'swing',function(){
// remove wrapper
$.effects.removeWrapper( el );
// callback
done();
});
};
})(jQuery);