1;(function ($) { 2 /** 3 * Fancy Table Plugin. 4 * 5 * @param el 6 * @param options 7 */ 8 $.thimFancyTable = function (el, options) { 9 options = $.extend($.thimFancyTable.defaults, options); 10 11 var $tbl = $(el), 12 $wrap = $('<div class="thim-fancy-table"></div>').insertAfter($tbl), 13 $horizontalScroll = $('<div class="tft-horizontal-scroll"><div></div></div>'), 14 $fixedColumns = $('.nothing-here'), 15 fixedWidth = 0; 16 17 $tbl.appendTo($wrap); 18 $tbl.find('tr').each(function () { 19 $fixedColumns = $fixedColumns.add($(this).children(':lt(' + options.fixedColumns + ')').addClass('fixed')); 20 if (fixedWidth === 0) { 21 $fixedColumns.map(function () { 22 fixedWidth += $(this).outerWidth(); 23 }) 24 } 25 }) 26 27 $horizontalScroll.insertAfter($tbl); 28 $horizontalScroll.find('div').css({ 29 width: $tbl.outerWidth() - fixedWidth - 1 30 }); 31 32 $horizontalScroll.on('scroll', function () { 33 var r = $(this).width() / $wrap.width(), 34 l = this.scrollLeft; 35 $tbl.css({ 36 marginLeft: -l 37 }); 38 39 $fixedColumns.css({ 40 transform: 'translateX(' + l + 'px)' 41 }); 42 }).css({ 43 marginLeft: fixedWidth - 1 44 }); 45 46 if ($.isFunction(options.onCreate)) { 47 options.onCreate.apply(this, [$tbl[0]]); 48 } 49 setTimeout(function () { 50 $wrap.addClass('ready') 51 }, 100) 52 } 53 54 $.thimFancyTable.defaults = { 55 fixedColumns: 1, 56 fixedRows: 1, 57 onCreate: function () { 58 59 } 60 } 61 $.fn.thimFancyTable = function (options) { 62 return $.each(this, function () { 63 new $.thimFancyTable(this, options) 64 }) 65 } 66})(jQuery);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.