HandyControl/doc/themes/next/source/js/schemes/pisces.js
2019-04-10 22:28:09 +08:00

58 lines
1.5 KiB
JavaScript

/* global NexT, CONFIG */
$(document).ready(function() {
var sidebarInner = $('.sidebar-inner');
var sidebarOffset = CONFIG.sidebar.offset || 12;
function getHeaderOffset() {
return $('.header-inner').height() + sidebarOffset;
}
function getFooterOffset() {
var footer = $('#footer');
var footerInner = $('.footer-inner');
var footerMargin = footer.outerHeight() - footerInner.outerHeight();
var footerOffset = footer.outerHeight() + footerMargin;
return footerOffset;
}
function initAffix() {
var headerOffset = getHeaderOffset();
var footerOffset = getFooterOffset();
var sidebarHeight = $('#sidebar').height() + NexT.utils.getSidebarb2tHeight();
var contentHeight = $('#content').height();
// Not affix if sidebar taller than content (to prevent bottom jumping).
if (headerOffset + sidebarHeight < contentHeight) {
sidebarInner.affix({
offset: {
top : headerOffset - sidebarOffset,
bottom: footerOffset
}
});
sidebarInner.affix('checkPosition');
}
$('#sidebar').css({ 'margin-top': headerOffset, 'margin-left': 'auto' });
}
function recalculateAffixPosition() {
$(window).off('.affix');
sidebarInner.removeData('bs.affix').removeClass('affix affix-top affix-bottom');
initAffix();
}
function resizeListener() {
var mql = window.matchMedia('(min-width: 992px)');
mql.addListener(function(e) {
if (e.matches) {
recalculateAffixPosition();
}
});
}
initAffix();
resizeListener();
});