-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathjquery.stacks.min.js
1 lines (1 loc) · 1.54 KB
/
jquery.stacks.min.js
1
(function(e){e.fn.stacks=function(t){var n=e.extend({body:".stickyparent",title:".header",margin:0,offset:0},t);e.each(this.find(n.body+" "+n.title),function(t,r){var i=e(r).offset();$bdr=0;$bordertopheight=e(r).css("border-top-width").substring(0,e(r).css("border-top-width").indexOf("p"));$borderbtmheight=e(r).css("border-bottom-width").substring(0,e(r).css("border-bottom-width").indexOf("p"));$bdr=parseInt($bordertopheight)+parseInt($borderbtmheight);e(window).resize(function(){$paddleft=e(r).css("padding-left").substring(0,e(r).css("padding-left").indexOf("p"));$paddright=e(r).css("padding-right").substring(0,e(r).css("padding-left").indexOf("p"));$width=e(r).parent().width()-$paddleft-$paddright;if(!e(r).hasClass("fixed")){i=e(r).offset()}$left=i.left;e(r).css({width:$width})});e(window).scroll(function(){if(e(window).scrollTop()+(e(r).outerHeight(true)-$bdr)>=e(r).closest(n.body).offset().top+e(r).closest(n.body).outerHeight(true)+n.margin-n.offset){e(r).removeClass("fixed").addClass("absolute").removeAttr("style")}else if(e(document).scrollTop()>=i.top-n.offset){$offset=i.left;$awidth=e(r).width();e(r).removeClass("absolute").addClass("fixed").css({width:$awidth});if(e(r).siblings("#filler").length<1){e('<div id="filler" />').css("height",e(r).outerHeight(true)).insertAfter(e(r))}}else{e(r).removeClass("fixed");e(r).removeAttr("style");e(r).siblings("#filler").remove()}})});setTimeout(function(){e.each(e(n.body+" "+n.title+".absolute"),function(t,n){e('<div id="filler" />').css("height",e(n).outerHeight(true)).insertAfter(e(n))})},100)}})(jQuery)