forked from NinjaBCN/zepto-slide-transition
-
Notifications
You must be signed in to change notification settings - Fork 0
/
zepto-slide-transition.min.js
1 lines (1 loc) · 1.32 KB
/
zepto-slide-transition.min.js
1
!function(i){"function"==typeof define&&define.amd?define(["zepto"],i):i(Zepto)}(function(i){var t=function(t){return function(o,n){var n=i.isFunction(o)?o:i.isFunction(n)?n:void 0,o=i.isNumeric(o)?o:void 0;this.each(function(){var e,s=i(this),a=s.css("position");if(0!==s.height()||"up"!==t){"down"===t&&(e=s.parent().attr("style"),s.show(),s.parent().css({position:"relative"}),s.css({position:"absolute",visibility:"hidden"}));var d=s.height(),p=s.css("margin-top"),r=s.css("margin-bottom"),c=s.css("padding-top"),g=s.css("padding-bottom");"down"===t?(s.parent().attr("style",e),s.css({position:a,visibility:"visible",overflow:"hidden",height:0,marginTop:0,marginBottom:0,paddingTop:0,paddingBottom:0}),s.animate({height:d,marginTop:p,marginBottom:r,paddingTop:c,paddingBottom:g},{duration:o,complete:function(){s.attr("style",""),s.show(),n&&n.call(s)}})):(s.css({display:"block",visibility:"visible",overflow:"hidden",height:d,marginTop:p,marginBottom:r,paddingTop:c,paddingBottom:g}),s.animate({height:0,marginTop:0,marginBottom:0,paddingTop:0,paddingBottom:0},{duration:o,queue:!1,complete:function(){s.attr("style",""),s.hide(),n&&n.call(s)}}))}})}};["up","down"].forEach(function(o){var n=o.substr(0,1).toUpperCase()+o.substr(1);i.fn["slide"+n]=t(o)}),i.fn.slideToggle=function(i,t){0===this.height()?this.slideDown(i,t):this.slideUp(i,t)}});