89 lines
3.4 KiB
JavaScript
89 lines
3.4 KiB
JavaScript
|
;
|
||
|
|
||
|
jQuery( function() {
|
||
|
$("body").on('click','[data-stopPropagation]',function (e) {
|
||
|
e.stopPropagation();
|
||
|
});
|
||
|
|
||
|
// 滚动条
|
||
|
const ps = new PerfectScrollbar('.lyear-layout-sidebar-scroll', {
|
||
|
swipeEasing: false,
|
||
|
suppressScrollX: true
|
||
|
});
|
||
|
|
||
|
// 侧边栏
|
||
|
$(".lyear-aside-toggler").bind('click', function(){
|
||
|
$('.lyear-layout-sidebar').toggleClass('lyear-aside-open');
|
||
|
$("body").toggleClass('lyear-layout-sidebar-close');
|
||
|
|
||
|
if ($('.lyear-mask-modal').length == 0) {
|
||
|
$('<div class="lyear-mask-modal"></div>').prependTo('body');
|
||
|
} else {
|
||
|
$( '.lyear-mask-modal' ).remove();
|
||
|
}
|
||
|
$('.lyear-mask-modal').on( 'click', function() {
|
||
|
$( this ).remove();
|
||
|
$('.lyear-layout-sidebar').toggleClass('lyear-aside-open');
|
||
|
$('body').toggleClass('lyear-layout-sidebar-close');
|
||
|
});
|
||
|
});
|
||
|
|
||
|
// 侧边栏导航
|
||
|
$( '.nav-item-has-subnav > a' ).on( 'click', function() {
|
||
|
$subnavToggle = jQuery( this );
|
||
|
$navHasSubnav = $subnavToggle.parent();
|
||
|
$topHasSubNav = $subnavToggle.parents('.nav-item-has-subnav').last();
|
||
|
$subnav = $navHasSubnav.find('.nav-subnav').first();
|
||
|
$viSubHeight = $navHasSubnav.siblings().find('.nav-subnav:visible').outerHeight();
|
||
|
$scrollBox = $('.lyear-layout-sidebar-scroll');
|
||
|
$navHasSubnav.siblings().find('.nav-subnav:visible').slideUp(500).parent().removeClass('open');
|
||
|
$subnav.slideToggle( 300, function() {
|
||
|
$navHasSubnav.toggleClass( 'open' );
|
||
|
|
||
|
// 新增滚动条处理
|
||
|
var scrollHeight = 0;
|
||
|
pervTotal = $topHasSubNav.prevAll().length,
|
||
|
boxHeight = $scrollBox.outerHeight(),
|
||
|
innerHeight = $('.sidebar-main').outerHeight(),
|
||
|
thisScroll = $scrollBox.scrollTop(),
|
||
|
thisSubHeight = $(this).outerHeight(),
|
||
|
footHeight = 121;
|
||
|
|
||
|
if (footHeight + innerHeight - boxHeight >= (pervTotal * 48)) {
|
||
|
scrollHeight = pervTotal * 48;
|
||
|
}
|
||
|
if ($subnavToggle.parents('.nav-item-has-subnav').length == 1) {
|
||
|
$scrollBox.animate({scrollTop: scrollHeight}, 300);
|
||
|
} else {
|
||
|
// 子菜单操作
|
||
|
if (typeof($viSubHeight) != 'undefined' && $viSubHeight != null) {
|
||
|
scrollHeight = thisScroll + thisSubHeight - $viSubHeight;
|
||
|
$scrollBox.animate({scrollTop: scrollHeight}, 300);
|
||
|
} else {
|
||
|
if ((thisScroll + boxHeight - $scrollBox[0].scrollHeight) == 0) {
|
||
|
scrollHeight = thisScroll - thisSubHeight;
|
||
|
$scrollBox.animate({scrollTop: scrollHeight}, 300);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
});
|
||
|
|
||
|
// 设置主题配色
|
||
|
setTheme = function(input_name, data_name) {
|
||
|
$("input[name='"+input_name+"']").click(function(){
|
||
|
$('body').attr(data_name, $(this).val());
|
||
|
});
|
||
|
}
|
||
|
setTheme('logo_bg', 'data-logobg');
|
||
|
setTheme('header_bg', 'data-headerbg');
|
||
|
setTheme('sidebar_bg', 'data-sidebarbg');
|
||
|
setTheme('sidebar_bg', 'data-sidebarbg');
|
||
|
|
||
|
$('.nav-item .multitabs').bind('click', function(){
|
||
|
$('.nav-item').removeClass('active');
|
||
|
$('.nav-subnav li').removeClass('active');
|
||
|
$(this).parent('li').addClass('active');
|
||
|
$(this).parents('.nav-item-has-subnav').addClass('open').first().addClass('active');
|
||
|
});
|
||
|
});
|