/**
|
* @author Roger Wu
|
*/
|
(function($){
|
$.extend($.fn, {
|
jBlindUp: function(options){
|
var op = $.extend({duration: 500, easing: "swing", call: function(){}}, options);
|
return this.each(function(){
|
var $this = $(this);
|
$(this).animate({height: 0}, {
|
step: function(){},
|
duration: op.duration,
|
easing: op.easing,
|
complete: function(){
|
$this.css({display: "none"});
|
op.call();
|
}
|
});
|
});
|
},
|
jBlindDown: function(options){
|
var op = $.extend({to:0, duration: 500,easing: "swing",call: function(){}}, options);
|
return this.each(function(){
|
var $this = $(this);
|
var fixedPanelHeight = (op.to > 0)?op.to:$.effect.getDimensions($this[0]).height;
|
$this.animate({height: fixedPanelHeight}, {
|
step: function(){},
|
duration: op.duration,
|
easing: op.easing,
|
complete: function(){
|
$this.css({display: ""});
|
op.call(); }
|
});
|
});
|
},
|
jSlideUp:function(options) {
|
var op = $.extend({to:0, duration: 500,easing: "swing",call: function(){}}, options);
|
return this.each(function(){
|
var $this = $(this);
|
$this.wrapInner("<div></div>");
|
var fixedHeight = (op.to > 0)?op.to:$.effect.getDimensions($(">div",$this)[0]).height;
|
$this.css({overflow:"visible",position:"relative"});
|
$(">div",$this).css({position:"relative"}).animate({top: -fixedHeight}, {
|
easing: op.easing,
|
duration: op.duration,
|
complete:function(){$this.html($(this).html());}
|
});
|
|
});
|
},
|
jSlideDown:function(options) {
|
var op = $.extend({to:0, duration: 500,easing: "swing",call: function(){}}, options);
|
return this.each(function(){
|
var $this = $(this);
|
var fixedHeight = (op.to > 0)?op.to:$.effect.getDimensions($this[0]).height;
|
$this.wrapInner("<div style=\"top:-" + fixedHeight + "px;\"></div>");
|
$this.css({overflow:"visible",position:"relative", height:"0px"})
|
.animate({height: fixedHeight}, {
|
duration: op.duration,
|
easing: op.easing,
|
complete: function(){ $this.css({display: "", overflow:""}); op.call(); }
|
});
|
$(">div",$this).css({position:"relative"}).animate({top: 0}, {
|
easing: op.easing,
|
duration: op.duration,
|
complete:function(){$this.html($(this).html());}
|
});
|
});
|
}
|
});
|
$.effect = {
|
getDimensions: function(element, displayElement){
|
var dimensions = new $.effect.Rectangle;
|
var displayOrig = $(element).css('display');
|
var visibilityOrig = $(element).css('visibility');
|
var isZero = $(element).height()==0?true:false;
|
if ($(element).is(":hidden")) {
|
$(element).css({visibility: 'hidden', display: 'block'});
|
if(isZero)$(element).css("height","");
|
if ($.browser.opera)
|
refElement.focus();
|
}
|
dimensions.height = $(element).outerHeight();
|
dimensions.width = $(element).outerWidth();
|
if (displayOrig == 'none'){
|
$(element).css({visibility: visibilityOrig, display: 'none'});
|
if(isZero) if(isZero)$(element).css("height","0px");
|
}
|
return dimensions;
|
}
|
}
|
$.effect.Rectangle = function(){
|
this.width = 0;
|
this.height = 0;
|
this.unit = "px";
|
}
|
})(jQuery);
|