// 初始化数据 var initdata = { // 节点 dom_nav: $('.nav'), // 导航 dom_nav_sub: $('.nav-sub'), // 二级导航 dom_nav_thr: $('.sec-menu'), // 三级导航 // }; /** * 事件绑定 PC */ var evenbind_pc = function () { // 移除事件 initdata.dom_nav.children().off(); initdata.dom_nav_sub.off(); initdata.dom_nav_thr.children().off(); // 清除 MB => PC 的bug initdata.dom_nav.children().each(function () { $(this).children('dl').removeClass("active").fadeOut('fast'); }); /** * 导航鼠标浮入事件 */ nav_hover(); function nav_hover() { var timeout; initdata.dom_nav.children().mouseover(function () { var data_file = $(this).attr("data-file"); clearTimeout(timeout); if (data_file === undefined) { initdata.dom_nav_sub.css({ "height": "0" }); initdata.dom_nav_sub.removeClass("showSubNav"); } else { var bigHeight = $(".nav-sub-con[data-name = '" + data_file + "']").outerHeight(); $(".nav-sub-con[data-name = '" + data_file + "']").addClass("show").siblings().removeClass("show"); initdata.dom_nav_sub.css({ "height": bigHeight }); initdata.dom_nav_sub.addClass("showSubNav"); } }).mouseout(function () { clearTimeout(timeout); timeout = setTimeout(function () { initdata.dom_nav_sub.css({ "height": "0" }); initdata.dom_nav_sub.removeClass("showSubNav"); $(".nav-sub-con").removeClass('show'); }, 300); }); initdata.dom_nav_sub.mouseover(function () { clearTimeout(timeout); $(this).addClass("showSubNav"); }).mouseout(function () { var _self = this; clearTimeout(timeout); timeout = setTimeout(function () { $(_self).removeClass("showSubNav"); $(_self).css({ "height": "0" }); $(".nav-sub-con").removeClass('show'); }, 300); }); } /** * 二级导航样式调整 */ // $(window).load(function () { // var dlWidth = $(".nav li").eq(0).outerWidth() + $(".nav li").eq(1).outerWidth() - 2; // $(".nav-sub li dl").css("left", dlWidth); // }); // // $(window).resize(function () { // var dlWidth = $(".nav li").eq(0).outerWidth() + $(".nav li").eq(1).outerWidth() - 2; // $(".nav-sub li dl").css("left", dlWidth); // }); // 三级导航鼠标浮入事件 initdata.dom_nav_thr.children().mouseover(function () { $(this).children('dl').css('display', "block"); }).mouseout(function () { $(this).children('dl').css('display', "none"); }); } /** * 事件绑定 MB */ var evenbind_mb = function () { // 移除事件 initdata.dom_nav.children().off(); initdata.dom_nav_sub.off(); initdata.dom_nav_thr.children().off(); /** * 导航鼠标浮入事件 */ var timer; // 新添加 initdata.dom_nav.children().on("click", function () { var dom_dl = $(this).children('dl'); var dom_dd = dom_dl.children('dd'); // 新添加 if (!dom_dl.hasClass('active')) { dom_dl.addClass("active").fadeIn('fast'); // 新添加 timer = dom_dd.on('click', function (event) { event.stopPropagation(); var dom_ul = $(this).children("ul"); var dom_li = dom_ul.children("li").length; if (!dom_ul.hasClass('asd')) { dom_ul.addClass("asd").fadeIn('fast'); dom_ul.css({ 'height': dom_li * 40 + 'px' }); $(this).css({ 'height': (dom_li + 1) * 40 + 'px' }); } else { dom_ul.removeClass("asd").fadeOut('fast'); dom_ul.css({ 'height': dom_li * 0 + 'px' }); $(this).css({ 'height': '40px' }); } }); } else { dom_dl.removeClass("active").fadeOut('fast'); timer.unbind() // 新添加 } }); } /** * 视口大小判断 */ var judgeViewportIsPC = function () { var view_width = window.innerWidth; if (view_width > 959) { evenbind_pc(); // 事件绑定 PC } else { evenbind_mb(); // 事件绑定 MB } } /** * 应用初始化 */ var init_application = function () { judgeViewportIsPC(); $(window).resize(judgeViewportIsPC); } init_application(); });