tablesorter/dist/js/widgets/widget-cssStickyHeaders.min.js

2 lines
2.4 KiB
JavaScript
Raw Normal View History

/*! Widget: cssStickyHeaders - updated 2/9/2015 (v2.19.1) */
2017-05-16 20:33:15 +00:00
!function(e,t){"use strict";var s=e.tablesorter;s.addWidget({id:"cssStickyHeaders",priority:10,options:{cssStickyHeaders_offset:0,cssStickyHeaders_addCaption:!1,cssStickyHeaders_attachTo:null,cssStickyHeaders_filteredToTop:!0},init:function(i,a,c,d){var r,o,n,l=c.$table,p=e(d.cssStickyHeaders_attachTo),h="ActiveXObject"in t,f=c.namespace+"cssstickyheader ",k=l.children("thead"),y=l.children("caption"),g=p.length?p:e(t),H=l.parent().closest("table."+s.css.table),S=H.length&&s.hasWidget(H[0],"cssStickyHeaders")?H.children("thead"):[],b=parseInt(l.css("border-top-width"),10)||0,_=d.cssStickyHeaders_addCaption,u=!1,m=!1,C=function(e,t){var s=0===t?"":"translate(0px,"+t+"px)";e.css({transform:s,"-ms-transform":s,"-webkit-transform":s})};y.length&&(r=l.height(),y.hide(),m=l.height()===r,y.show(),o=l.offset().top,C(y,20),u=l.offset().top!==o,C(y,0)),g.unbind("scroll resize ".split(" ").join(f).replace(/\s+/g," ")).bind("scroll resize ".split(" ").join(f),function(){d=c.widgetOptions,u&&(C(y,0),n=l.offset().top);var e=p.length?p.offset().top:g.scrollTop(),t=(y.outerHeight(!0)||0)+(parseInt(l.css("padding-top"),10)||0)+(parseInt(l.css("border-spacing"),10)||0),s=l.height()+(m&&d.cssStickyHeaders_addCaption?t:0)-k.height()-(l.children("tfoot").height()||0)-(d.cssStickyHeaders_addCaption?t:m?0:t),i=S.length?S.height():0,a=S.length?h?H.data("cssStickyHeaderBottom")+i:S.offset().top+i-g.scrollTop():0,r=u?n:l.offset().top,o=e-(m?r-(d.cssStickyHeaders_addCaption?t:0):r)+a+b+(d.cssStickyHeaders_offset||0)-(d.cssStickyHeaders_addCaption?m?t:0:t),f=o>0&&o<=s?o:0,T=h?k.children().children():k;h&&c.$table.data("cssStickyHeaderBottom",(S.length?i:0)-(d.cssStickyHeaders_addCaption?t:0)),d.cssStickyHeaders_addCaption&&(T=T.add(y)),_!==d.cssStickyHeaders_addCaption&&((_=d.cssStickyHeaders_addCaption)||C(y,0)),C(T,f)}),l.unbind(("filterEnd"+f).replace(/\s+/g," ")).bind("filterEnd"+f,function(){d.cssStickyHeaders_filteredToTop&&t.scrollTo(0,l.position().top)})},remove:function(s,i,a,c){if(!c){var d=i.namespace+"cssstickyheader ";e(t).unbind("scroll resize ".split(" ").join(d).replace(/\s+/g," ")),i.$table.unbind("filterEnd scroll resize ".split(" ").join(d).replace(/\s+/g," ")).add(i.$table.children("thead").children().children()).children("thead, caption").css({transform:"","-ms-transform":"","-webkit-transform":""})}}})}(jQuery,window);