mirror of
https://gitee.com/handyorg/HandyControl.git
synced 2024-12-02 20:07:56 +08:00
58 lines
1.5 KiB
JavaScript
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();
|
|
});
|