relatively-sticky

A jQuery plugin for creating smart sticky elements
git clone https://git.ce9e.org/relatively-sticky.git

commit
539d30ee693680b3a8afa3db48a4e8573d67448c
parent
5d9a97b5e137288f1336bc663ab0227ee8e3d514
Author
leaf corcoran <leafot@gmail.com>
Date
2013-11-16 06:09
oops rename to recalc_and_tick

Diffstat

M jquery.sticky-kit.coffee 4 ++--
M jquery.sticky-kit.js 6 +++---
M jquery.sticky-kit.min.js 10 +++++-----

3 files changed, 10 insertions, 10 deletions


diff --git a/jquery.sticky-kit.coffee b/jquery.sticky-kit.coffee

@@ -142,13 +142,13 @@ $.fn.stick_in_parent = (opts={}) ->
  142   142               top: ""
  143   143             }).trigger("sticky_kit:bottom")
  144   144 
  145    -1       recalc = ->
   -1   145       recalc_and_tick = ->
  146   146         recalc()
  147   147         tick()
  148   148 
  149   149       detach = ->
  150   150         win.off "scroll", tick
  151    -1         $(document.body).off "sticky_kit:recalc", recalc
   -1   151         $(document.body).off "sticky_kit:recalc", recalc_and_tick
  152   152         elm.off "sticky_kit:detach", detach
  153   153 
  154   154         elm.css {

diff --git a/jquery.sticky-kit.js b/jquery.sticky-kit.js

@@ -30,7 +30,7 @@
   30    30       sticky_class = "is_stuck";
   31    31     }
   32    32     _fn = function(elm, padding_bottom, parent_top, parent_height, top, height) {
   33    -1       var bottomed, detach, fixed, float, last_pos, offset, parent, recalc, reset_width, spacer, tick;
   -1    33       var bottomed, detach, fixed, float, last_pos, offset, parent, recalc, recalc_and_tick, reset_width, spacer, tick;
   34    34       parent = elm.parent();
   35    35       if (parent_selector != null) {
   36    36         parent = parent.closest(parent_selector);
@@ -151,13 +151,13 @@
  151   151           }
  152   152         }
  153   153       };
  154    -1       recalc = function() {
   -1   154       recalc_and_tick = function() {
  155   155         recalc();
  156   156         return tick();
  157   157       };
  158   158       detach = function() {
  159   159         win.off("scroll", tick);
  160    -1         $(document.body).off("sticky_kit:recalc", recalc);
   -1   160         $(document.body).off("sticky_kit:recalc", recalc_and_tick);
  161   161         elm.off("sticky_kit:detach", detach);
  162   162         elm.css({
  163   163           position: "",

diff --git a/jquery.sticky-kit.min.js b/jquery.sticky-kit.min.js

@@ -1,8 +1,8 @@
    1     1 /*
    2     2  Sticky-kit v1.0.1 | WTFPL | Leaf Corcoran 2013 | http://leafo.net
    3     3 */
    4    -1 (function(){var g,s;g=this.jQuery;s=g(window);g.fn.stick_in_parent=function(f){var w,l,t,u,C,h,D;null==f&&(f={});u=f.sticky_class;w=f.inner_scrolling;t=f.parent;l=f.offset_top;null==l&&(l=0);null==t&&(t=void 0);null==w&&(w=!0);null==u&&(u="is_stuck");C=function(a,f,h,x,z,m){var q,A,r,n,y,b,d,e,B,k,v;d=a.parent();null!=t&&(d=d.closest(t));if(!d.length)throw"failed to find stick parent";e=function(){var c,b;c=parseInt(d.css("border-top-width"),10);b=parseInt(d.css("padding-top"),10);f=parseInt(d.css("padding-bottom"),
    5    -1 10);h=d.offset().top+c+b;x=d.height();c=a.is(".is_stuck")?k:a;z=c.offset().top-parseInt(c.css("margin-top"),10)-l;return m=c.outerHeight(!0)};e();if(m!==x)return n=a.css("float"),k=g("<div />").css({width:a.outerWidth(!0),height:m,display:a.css("display"),"vertical-align":a.css("vertical-align"),float:n}),q=r=!1,y=void 0,b=l,B=!1,v=function(){var c,g,p,e;p=s.scrollTop();null!=y&&(g=p-y);y=p;r?(e=p+m+b>x+h,q&&!e&&(q=!1,a.css({position:"fixed",bottom:"",top:b}).trigger("sticky_kit:unbottom")),p<z&&
    6    -1 (r=!1,b=l,"left"!==n&&"right"!==n||a.insertAfter(k),k.detach(),c={position:"",top:""},B&&(c.width=""),a.css(c).removeClass(u).trigger("sticky_kit:unstick")),w&&(c=s.height(),m>c&&!q&&(b-=g,b=Math.max(c-m,b),b=Math.min(l,b),r&&a.css({top:b+"px"})))):p>z&&(r=!0,c={position:"fixed",top:b},"none"===n&&"block"===a.css("display")&&(c.width=a.width()+"px",B=!0),a.css(c).addClass(u).after(k),"left"!==n&&"right"!==n||k.append(a),a.trigger("sticky_kit:stick"));if(r&&(null==e&&(e=p+m+b>x+h),!q&&e))return q=
    7    -1 !0,"static"===d.css("position")&&d.css({position:"relative"}),a.css({position:"absolute",bottom:f,top:""}).trigger("sticky_kit:bottom")},e=function(){e();return v()},A=function(){s.off("scroll",v);g(document.body).off("sticky_kit:recalc",e);a.off("sticky_kit:detach",A);a.css({position:"",bottom:"",top:""});d.position("position","");if(a.is(".is_stuck"))return a.insertAfter(k).removeClass("is_stuck"),k.remove()},s.on("scroll",v),g(document.body).on("sticky_kit:recalc",e),a.on("sticky_kit:detach",A),
    8    -1 setTimeout(v,0)};h=0;for(D=this.length;h<D;h++)f=this[h],C(g(f));return this}}).call(this);
   -1     4 (function(){var g,s;g=this.jQuery;s=g(window);g.fn.stick_in_parent=function(e){var w,l,f,t,u,h,D;null==e&&(e={});t=e.sticky_class;w=e.inner_scrolling;f=e.parent;l=e.offset_top;null==l&&(l=0);null==f&&(f=void 0);null==w&&(w=!0);null==t&&(t="is_stuck");u=function(a,e,h,x,A,m){var q,B,r,n,y,b,d,z,u,C,k,v;d=a.parent();null!=f&&(d=d.closest(f));if(!d.length)throw"failed to find stick parent";z=function(){var c,b;c=parseInt(d.css("border-top-width"),10);b=parseInt(d.css("padding-top"),10);e=parseInt(d.css("padding-bottom"),
   -1     5 10);h=d.offset().top+c+b;x=d.height();c=a.is(".is_stuck")?k:a;A=c.offset().top-parseInt(c.css("margin-top"),10)-l;return m=c.outerHeight(!0)};z();if(m!==x)return n=a.css("float"),k=g("<div />").css({width:a.outerWidth(!0),height:m,display:a.css("display"),"vertical-align":a.css("vertical-align"),float:n}),q=r=!1,y=void 0,b=l,C=!1,v=function(){var c,g,p,f;p=s.scrollTop();null!=y&&(g=p-y);y=p;r?(f=p+m+b>x+h,q&&!f&&(q=!1,a.css({position:"fixed",bottom:"",top:b}).trigger("sticky_kit:unbottom")),p<A&&
   -1     6 (r=!1,b=l,"left"!==n&&"right"!==n||a.insertAfter(k),k.detach(),c={position:"",top:""},C&&(c.width=""),a.css(c).removeClass(t).trigger("sticky_kit:unstick")),w&&(c=s.height(),m>c&&!q&&(b-=g,b=Math.max(c-m,b),b=Math.min(l,b),r&&a.css({top:b+"px"})))):p>A&&(r=!0,c={position:"fixed",top:b},"none"===n&&"block"===a.css("display")&&(c.width=a.width()+"px",C=!0),a.css(c).addClass(t).after(k),"left"!==n&&"right"!==n||k.append(a),a.trigger("sticky_kit:stick"));if(r&&(null==f&&(f=p+m+b>x+h),!q&&f))return q=
   -1     7 !0,"static"===d.css("position")&&d.css({position:"relative"}),a.css({position:"absolute",bottom:e,top:""}).trigger("sticky_kit:bottom")},u=function(){z();return v()},B=function(){s.off("scroll",v);g(document.body).off("sticky_kit:recalc",u);a.off("sticky_kit:detach",B);a.css({position:"",bottom:"",top:""});d.position("position","");if(a.is(".is_stuck"))return a.insertAfter(k).removeClass("is_stuck"),k.remove()},s.on("scroll",v),g(document.body).on("sticky_kit:recalc",z),a.on("sticky_kit:detach",B),
   -1     8 setTimeout(v,0)};h=0;for(D=this.length;h<D;h++)e=this[h],u(g(e));return this}}).call(this);