Панель управления сверстанная и с встроенным jQuery.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

107 lines
2.7 KiB

3 years ago
/* ------------------------------------------------------------------------------
*
* # Sticky sidebar with custom scrollbar
*
* Specific JS code additions for layout_sidebar_sticky_custom.html page
*
* Version: 1.0
* Latest update: Aug 1, 2015
*
* ---------------------------------------------------------------------------- */
$(function() {
// Nice scroll
// ------------------------------
// Setup
function initScroll() {
$(".sidebar-detached .sidebar").niceScroll({
mousescrollstep: 100,
cursorcolor: '#ccc',
cursorborder: '',
cursorwidth: 3,
hidecursordelay: 100,
autohidemode: 'scroll',
horizrailenabled: false,
preservenativescrolling: false,
railpadding: {
right: 0.5,
top: 1.5,
bottom: 1.5
}
});
}
// Resize
function resizeScroll() {
$('.sidebar-detached .sidebar').getNiceScroll().resize();
}
// Remove
function removeScroll() {
$(".sidebar-detached .sidebar").getNiceScroll().remove();
$(".sidebar-detached .sidebar").removeAttr('style').removeAttr('tabindex');
}
// Resize sidebar on scroll
// ------------------------------
// Resize detached sidebar vertically when bottom reached
function resizeDetached() {
$(window).on('load scroll', function() {
if ($(window).scrollTop() > $(document).height() - $(window).height() - 60) {
$('.sidebar-detached').addClass('fixed-sidebar-space');
resizeScroll();
}
else {
$('.sidebar-detached').removeClass('fixed-sidebar-space');
resizeScroll();
}
});
}
// Affix detached sidebar
// ------------------------------
// Init nicescroll when sidebar affixed
$('.sidebar-detached').on('affix.bs.affix', function() {
initScroll();
resizeDetached();
});
// When effixed top, remove scrollbar and its data
$('.sidebar-detached').on('affix-top.bs.affix', function() {
removeScroll();
$(".sidebar-detached .sidebar").removeAttr('style').removeAttr('tabindex');
});
// Attach BS affix component to the sidebar
$('.sidebar-detached').affix({
offset: {
top: $('.sidebar-detached').offset().top - 20 // top offset - computed line height
}
});
// Remove affix and scrollbar on mobile
$(window).on('resize', function() {
setTimeout(function() {
if($(window).width() <= 768) {
// Remove nicescroll on mobiles
removeScroll();
// Remove affix on mobile
$(window).off('.affix')
$('.sidebar-detached').removeData('affix').removeClass('affix affix-top affix-bottom');
}
}, 100);
}).resize();
});