Files
aportil/modules/lib/floating_header/jquery.list.min.js

1 line
3.6 KiB
JavaScript

;(function(e){var k=!0,l={headerSelector:"dt",zIndex:1},m=function(){var b=e(this),a=b.data("list");a&&(a.fakeHeader.width(a.headers.width()),a.wrapper.css("maxHeight",b.css("maxHeight")))},n=function(){var b=e(this),a=b.data("list");if(a){var d=null,c=a.headers.eq(a.currentHeader),i=a.currentHeader>=a.headers.length-1?null:a.headers.eq(a.currentHeader+1),f=0>=a.currentHeader?null:a.headers.eq(a.currentHeader-1),h=!1;a.containerTop=b.offset().top+parseInt(b.css("marginTop"),10)+parseInt(b.css("borderTopWidth"), 10);a.fakeHeader.css("top",0);if(null!==f){var g=c.offset().top,c=c.outerHeight();g>a.containerTop&&(a.fakeHeader.css("top",g-c-a.containerTop),a.fakeHeader.html(f.html()),a.currentHeader-=1,h=!0);g-c>a.containerTop&&(a.fakeHeader.css("top",0),d=a.currentHeader-1)}null!==i&&(g=i.offset().top,c=i.outerHeight(),g-c<a.containerTop&&a.fakeHeader.css("top",g-c-a.containerTop),g<a.containerTop&&(a.fakeHeader.css("top",0),d=a.currentHeader+1));null!==d&&(h=a.headers.eq(d),a.currentHeader=d,a.fakeHeader.html(h.html()), h=!0);d=a.wrapper.scrollTop()>=a.wrapper.prop("scrollHeight")-a.wrapper.height();(h||d||a.max&&!d)&&b.trigger("headingChange",[a.currentHeader,a.headers.eq(a.currentHeader),d]);a.max=d;b.data("list",a)}},j={init:function(b){return e(this).each(function(){var a=e.extend({},l);"object"==typeof b&&e.extend(a,b);var d=e(this),c=d.data("list");c||(c={target:d,wrapper:d.wrapInner('<div class="ui-list" />').find(".ui-list"),settings:a,headers:[],containerTop:0,currentHeader:0,fakeHeader:null,scrolllist:[], original:{position:"",overflowX:"",overflowY:""},max:!1},d.addClass("-list-container").css({position:"absolute"==d.css("position")?"absolute":"relative",overflowY:"hidden"}),c.headers=d.find(c.settings.headerSelector),c.fakeHeader=c.headers.eq(0).clone().removeAttr("id").addClass("-list-fakeheader").replaceWith('<div class="-list-fakeheader">'+c.headers.eq(0).html()+"</div>"),c.wrapper.bind("scroll.list",e.proxy(n,d)).css({height:"100%",maxHeight:d.css("maxHeight"),overflowY:"scroll",position:"relative"}), c.fakeHeader.css({position:"absolute",top:0,width:c.headers.width(),zIndex:c.settings.zIndex}),e(window).bind("resize.list",e.proxy(m,d)),d.data("list",c).prepend(c.fakeHeader))})},header:function(){var b=e(this).data("list");if(b)return b.currentHeader},scrollTo:function(b,a,d,c){return this.each(function(){var i=e(this),f=i.data("list");if(f&&void 0!==b&&!isNaN(b)&&0<=b&&b<f.headers.length){var h=f.headers.eq(b),g=h.outerHeight()-h.height(),g=h.position().top+f.wrapper.scrollTop()+g;a?f.wrapper.stop().animate({scrollTop:g}, a,d,c):(f.wrapper.stop().scrollTop(g),f.currentHeader=b,f.fakeHeader.html(h.html()),i.trigger("headingChange",[b,h]),i.data("list",f))}})},option:function(b,a){var d=e(this),c=d.data("list");if(c){if("undefined"==typeof b)return c.settings;if(!b in c.settings)return!1;if("undefined"==typeof a)return c.settings[b];c.settings[b]=a;return d}},version:function(b){if(b){var a=["1","2","1"],b=(Number(a[0])||1)+"",d=(Number(a[1])||0)+"",a=(Number(a[2])||0)+"";return Number("000".slice(0,3-b.length)+b+"000".slice(0, 3-d.length)+d+"000".slice(0,3-a.length)+a)}return"list v1.2.1"},destroy:function(){return this.each(function(){var b=e(this),a=b.data("list");a&&(a.wrapper.children().unwrap(),a.fakeHeader.remove(),b.css(a.original).removeData("list").removeClass("-list-container").unbind(".list"))})}};e.fn.list=function(b){if(j[b])return j[b].apply(this,Array.prototype.slice.call(arguments,1));if("object"===typeof b||!b)return j.init.apply(this,arguments);e.error("Method "+b+" does not exist on jQuery.list")};e.list= {};e.list.log=function(b){void 0!==b&&(k=b);return k}})(jQuery);