(function ($) { mainHeight = $(document).height() - 25; $('.show-sideber').height(mainHeight); $('.show-sideber').height(mainHeight); $.learuntab = { requestFullScreen: function () { var de = document.documentElement; if (de.requestFullscreen) { de.requestFullscreen(); } else if (de.mozRequestFullScreen) { de.mozRequestFullScreen(); } else if (de.webkitRequestFullScreen) { de.webkitRequestFullScreen(); } }, exitFullscreen: function () { var de = document; if (de.exitFullscreen) { de.exitFullscreen(); } else if (de.mozCancelFullScreen) { de.mozCancelFullScreen(); } else if (de.webkitCancelFullScreen) { de.webkitCancelFullScreen(); } }, refreshTab: function () { var currentId = $('.page-tabs-content').find('.active').attr('data-id'); var target = $('.LRADMS_iframe[data-id="' + currentId + '"]'); var url = target.attr('src'); //$.loading(true); target.attr('src', url).load(function () { //$.loading(false); }); }, activeTab: function () { var currentId = $(this).data('id'); if (!$(this).hasClass('active')) { $('.mainContent .LRADMS_iframe').each(function () { if ($(this).data('id') == currentId) { $(this).show().siblings('.LRADMS_iframe').hide(); return false; } }); $(this).addClass('active').siblings('.menuTab').removeClass('active'); $.learuntab.scrollToTab(this); } }, closeOtherTabs: function () { $('.page-tabs-content').children("[data-id]").find('.fa-remove').parents('a').not(".active").each(function () { $('.LRADMS_iframe[data-id="' + $(this).data('id') + '"]').remove(); $(this).remove(); }); $('.page-tabs-content').css("margin-left", "0"); }, closeTab: function () { var closeTabId = $(this).parents('.menuTab').data('id'); var currentWidth = $(this).parents('.menuTab').width(); if ($(this).parents('.menuTab').hasClass('active')) { if ($(this).parents('.menuTab').next('.menuTab').size()) { var activeId = $(this).parents('.menuTab').next('.menuTab:eq(0)').data('id'); $(this).parents('.menuTab').next('.menuTab:eq(0)').addClass('active'); $('.mainContent .LRADMS_iframe').each(function () { if ($(this).data('id') == activeId) { $(this).show().siblings('.LRADMS_iframe').hide(); return false; } }); var marginLeftVal = parseInt($('.page-tabs-content').css('margin-left')); if (marginLeftVal < 0) { $('.page-tabs-content').animate({ marginLeft: (marginLeftVal + currentWidth) + 'px' }, "fast"); } $(this).parents('.menuTab').remove(); $('.mainContent .LRADMS_iframe').each(function () { if ($(this).data('id') == closeTabId) { $(this).remove(); return false; } }); } if ($(this).parents('.menuTab').prev('.menuTab').size()) { var activeId = $(this).parents('.menuTab').prev('.menuTab:last').data('id'); $(this).parents('.menuTab').prev('.menuTab:last').addClass('active'); $('.mainContent .LRADMS_iframe').each(function () { if ($(this).data('id') == activeId) { $(this).show().siblings('.LRADMS_iframe').hide(); return false; } }); $(this).parents('.menuTab').remove(); $('.mainContent .LRADMS_iframe').each(function () { if ($(this).data('id') == closeTabId) { $(this).remove(); return false; } }); } } else { $(this).parents('.menuTab').remove(); $('.mainContent .LRADMS_iframe').each(function () { if ($(this).data('id') == closeTabId) { $(this).remove(); return false; } }); $.learuntab.scrollToTab($('.menuTab.active')); } return false; }, addTab: function () { $(".navbar-custom-menu>ul>li.open").removeClass("open"); var dataId = $(this).attr('data-id'); if (dataId != "") { //top.$.cookie('nfine_currentmoduleid', dataId, { path: "/" }); } var dataUrl = $(this).attr('href'); var menuName = $.trim($(this).text()); var flag = true; if (dataUrl == undefined || $.trim(dataUrl).length == 0) { return false; } var menu = $("a.menuItem"); for (var i = 0; i < menu.size(); i++) { menu.eq(i).removeClass("no"); } $(this).addClass("no"); $('.menuTab').each(function () { if ($(this).data('id') == dataUrl) { if (!$(this).hasClass('active')) { $(this).addClass('active').siblings('.menuTab').removeClass('active'); $.learuntab.scrollToTab(this); $('.mainContent .LRADMS_iframe').each(function () { if ($(this).data('id') == dataUrl) { $(this).show().siblings('.LRADMS_iframe').hide(); return false; } }); } flag = false; return false; } }); if (flag) { var str = '' + menuName + ' '; $('.menuTab').removeClass('active'); var str1 = ''; $('.mainContent').find('iframe.LRADMS_iframe').hide(); $('.mainContent').append(str1); //$.loading(true); $('.mainContent iframe:visible').load(function () { //$.loading(false); }); $('.menuTabs .page-tabs-content').append(str); $.learuntab.scrollToTab($('.menuTab.active')); } return false; }, scrollTabRight: function () { var marginLeftVal = Math.abs(parseInt($('.page-tabs-content').css('margin-left'))); var tabOuterWidth = $.learuntab.calSumWidth($(".content-tabs").children().not(".menuTabs")); var visibleWidth = $(".content-tabs").outerWidth(true) - tabOuterWidth; var scrollVal = 0; if ($(".page-tabs-content").width() < visibleWidth) { return false; } else { var tabElement = $(".menuTab:first"); var offsetVal = 0; while ((offsetVal + $(tabElement).outerWidth(true)) <= marginLeftVal) { offsetVal += $(tabElement).outerWidth(true); tabElement = $(tabElement).next(); } offsetVal = 0; while ((offsetVal + $(tabElement).outerWidth(true)) < (visibleWidth) && tabElement.length > 0) { offsetVal += $(tabElement).outerWidth(true); tabElement = $(tabElement).next(); } scrollVal = $.learuntab.calSumWidth($(tabElement).prevAll()); if (scrollVal > 0) { $('.page-tabs-content').animate({ marginLeft: 0 - scrollVal + 'px' }, "fast"); } } }, scrollTabLeft: function () { var marginLeftVal = Math.abs(parseInt($('.page-tabs-content').css('margin-left'))); var tabOuterWidth = $.learuntab.calSumWidth($(".content-tabs").children().not(".menuTabs")); var visibleWidth = $(".content-tabs").outerWidth(true) - tabOuterWidth; var scrollVal = 0; if ($(".page-tabs-content").width() < visibleWidth) { return false; } else { var tabElement = $(".menuTab:first"); var offsetVal = 0; while ((offsetVal + $(tabElement).outerWidth(true)) <= marginLeftVal) { offsetVal += $(tabElement).outerWidth(true); tabElement = $(tabElement).next(); } offsetVal = 0; if ($.learuntab.calSumWidth($(tabElement).prevAll()) > visibleWidth) { while ((offsetVal + $(tabElement).outerWidth(true)) < (visibleWidth) && tabElement.length > 0) { offsetVal += $(tabElement).outerWidth(true); tabElement = $(tabElement).prev(); } scrollVal = $.learuntab.calSumWidth($(tabElement).prevAll()); } } $('.page-tabs-content').animate({ marginLeft: 0 - scrollVal + 'px' }, "fast"); }, scrollToTab: function (element) { var marginLeftVal = $.learuntab.calSumWidth($(element).prevAll()), marginRightVal = $.learuntab.calSumWidth($(element).nextAll()); var tabOuterWidth = $.learuntab.calSumWidth($(".content-tabs").children().not(".menuTabs")); var visibleWidth = $(".content-tabs").outerWidth(true) - tabOuterWidth; var scrollVal = 0; if ($(".page-tabs-content").outerWidth() < visibleWidth) { scrollVal = 0; } else if (marginRightVal <= (visibleWidth - $(element).outerWidth(true) - $(element).next().outerWidth(true))) { if ((visibleWidth - $(element).next().outerWidth(true)) > marginRightVal) { scrollVal = marginLeftVal; var tabElement = element; while ((scrollVal - $(tabElement).outerWidth()) > ($(".page-tabs-content").outerWidth() - visibleWidth)) { scrollVal -= $(tabElement).prev().outerWidth(); tabElement = $(tabElement).prev(); } } } else if (marginLeftVal > (visibleWidth - $(element).outerWidth(true) - $(element).prev().outerWidth(true))) { scrollVal = marginLeftVal - $(element).prev().outerWidth(true); } $('.page-tabs-content').animate({ marginLeft: 0 - scrollVal + 'px' }, "fast"); }, calSumWidth: function (element) { var width = 0; $(element).each(function () { width += $(this).outerWidth(true); }); return width; }, init: function () { $('.menuItem').on('click', $.learuntab.addTab); $('.menuTabs').on('click', '.menuTab i', $.learuntab.closeTab); $('.menuTabs').on('click', '.menuTab', $.learuntab.activeTab); $('.tabLeft').on('click', $.learuntab.scrollTabLeft); $('.tabRight').on('click', $.learuntab.scrollTabRight); $('.tabReload').on('click', $.learuntab.refreshTab); $('.tabCloseCurrent').on('click', function () { $('.page-tabs-content').find('.active i').trigger("click"); }); $('.tabCloseAll').on('click', function () { $('.page-tabs-content').children("[data-id]").find('.fa-remove').each(function () { $('.LRADMS_iframe[data-id="' + $(this).data('id') + '"]').remove(); $(this).parents('a').remove(); }); $('.page-tabs-content').children("[data-id]:first").each(function () { $('.LRADMS_iframe[data-id="' + $(this).data('id') + '"]').show(); $(this).addClass("active"); }); $('.page-tabs-content').css("margin-left", "0"); }); $('.tabCloseOther').on('click', $.learuntab.closeOtherTabs); $('.fullscreen').on('click', function () { if (!$(this).attr('fullscreen')) { $(this).attr('fullscreen', 'true'); $.learuntab.requestFullScreen(); } else { $(this).removeAttr('fullscreen') $.learuntab.exitFullscreen(); } }); } }; $.learunindex = { load: function () { $("body").removeClass("hold-transition") $("#content-wrapper").find('.mainContent').height($(window).height() - 100); $(window).resize(function (e) { $("#content-wrapper").find('.mainContent').height($(window).height() - 100); }); $(".sidebar-toggle").click(function () { if (!$("body").hasClass("sidebar-collapse")) { $("body").addClass("sidebar-collapse"); } else { $("body").removeClass("sidebar-collapse"); } }) $(window).load(function () { window.setTimeout(function () { $('#ajax-loader').fadeOut(); }, 300); }); }, jsonWhere: function (data, action) { if (action == null) return; var reval = new Array(); $(data).each(function (i, v) { if (action(v)) { reval.push(v); } }) return reval; }, loadMenu: function () { $("#sidebar-menu li a").click(function () { var d = $(this), e = d.next(); if (e.is(".treeview-menu") && e.is(":visible")) { e.slideUp(500, function () { e.removeClass("menu-open") }), e.parent("li").removeClass("active") } else if (e.is(".treeview-menu") && !e.is(":visible")) { var f = d.parents("ul").first(), g = f.find("ul:visible").slideUp(500); g.removeClass("menu-open"); var h = d.parent("li"); e.slideDown(500, function () { e.addClass("menu-open"), f.find("li.active").removeClass("active"), h.addClass("active"); var _height1 = $(window).height() - $("#sidebar-menu ul>li.active").position().top - 41; var _height2 = $("#sidebar-menu ul> li > ul.menu-open").height() + 10 if (_height2 > _height1) { $("#sidebar-menu ul>li > ul.menu-open").css({ overflow: "auto", height: _height1 }) } }) } e.is(".treeview-menu"); }); } }; $(function () { $.learunindex.load(); $.learunindex.loadMenu(); $.learuntab.init(); $(window).scroll(function () { // console.log($(this).scrollTop()); //当window的scrolltop距离大于1时,go to if ($(this).scrollTop() > 50) { $('#rightFrame').addClass('tabfix'); } else { $('#rightFrame').removeClass("tabfix"); } }); }); })(jQuery);