1/* global NexT, CONFIG */ 2 3$(document).ready(function() { 4 5 var sidebarInner = $('.sidebar-inner'); 6 var sidebarOffset = CONFIG.sidebar.offset ? CONFIG.sidebar.offset : 12; 7 8 function getHeaderOffset() { 9 return $('.header-inner').height() + sidebarOffset; 10 } 11 12 function getFooterOffset() { 13 var footerInner = $('.footer-inner'); 14 var footerMargin = footerInner.outerHeight(true) - footerInner.outerHeight(); 15 var footerOffset = footerInner.outerHeight(true) + footerMargin; 16 return footerOffset; 17 } 18 19 function initAffix() { 20 var headerOffset = getHeaderOffset(); 21 var footerOffset = getFooterOffset(); 22 var sidebarHeight = $('#sidebar').height() + NexT.utils.getSidebarb2tHeight(); 23 var contentHeight = $('#content').height(); 24 25 // Not affix if sidebar taller then content (to prevent bottom jumping). 26 if (headerOffset + sidebarHeight < contentHeight) { 27 sidebarInner.affix({ 28 offset: { 29 top : headerOffset - sidebarOffset, 30 bottom: footerOffset 31 } 32 }); 33 sidebarInner.affix('checkPosition'); 34 } 35 36 $('#sidebar').css({ 'margin-top': headerOffset, 'margin-left': 'initial' }); 37 } 38 39 function recalculateAffixPosition() { 40 $(window).off('.affix'); 41 sidebarInner.removeData('bs.affix').removeClass('affix affix-top affix-bottom'); 42 initAffix(); 43 } 44 45 function resizeListener() { 46 var mql = window.matchMedia('(min-width: 992px)'); 47 mql.addListener(function(e) { 48 if (e.matches) { 49 recalculateAffixPosition(); 50 } 51 }); 52 } 53 54 initAffix(); 55 resizeListener(); 56});
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.