"use strict"; (function () { var container = $('#pageNav'); //pc导航 var navBotton = container.find('.nav-button'); //导航按钮 var navBottonClose = container.find('.tool-icon-nav-close'); //导航关闭按钮 var subNavContainer = container.find('.sub-nav-container'); //二级导航的容器 var subNavContainerMobile = container.find('.sub-nav-container-mobile'); //移动端的导航 var pageNavShadow = container.find('.page-nav-shadow'); //移动端导航的遮罩 var subNavItems = subNavContainer.find('.nav-item'); //二级导航链接 var topNavItems = container.find('.content-wrap .content .nav-item'); //顶部导航的链接 var activedNav = topNavItems.filter('.active'); //顶部导航的链接高亮的那个 var subNav = subNavContainer.find('.subnav'); //3级导航容器 var topnavSide = subNavContainer.find('.topnav_side'); //3级导航的左侧导航 安全产品和解决方案 var topnavMain = subNav.find('.topnav_main'); //3级导航的内容区域 var secondNavItems = topnavSide.find('li'); //3级导航左侧导航的链接li var secondNavItemsLins = topnavSide.find('li a'); //3级导航左侧导航的链接 var toolIcon = container.find('.tool-icon .icon'); //顶部小按钮 搜索 语言 登陆 var isSmallScreen = false; //是否手机小屏幕 var smallScreenWidth = 768; //手机小屏幕的宽度判断值 var searchInput = container.find('#searchBar .search-input'); //搜索输入框 var toolBox = container.find('.tool-box'); //语言 搜索 登陆的 下拉框 var searchIcon = container.find('#searchIcon'); //搜索的按钮 //搜索 用户 语言的下拉列表 toolIcon.on('click', function (e) { var icon = $(this); $.each(toolIcon, function (index, item) { if (item != icon[0]) { $(item.parentNode).removeClass('current'); } }); $(icon[0].parentNode).toggleClass('current'); var target = icon.attr('open-target'); target = $('#' + target); var toolList = container.find('.tool-list'); $.each(toolList, function (index, item) { if (item != target[0]) { $(item).hide(); } }); searchInput.val(''); target.slideToggle(200); }); //点击搜索按钮 关闭导航 searchIcon.on('click', function (e) { e.preventDefault(); subNavContainer.hide(); initNav(); if (subNavContainerMobile[0].style.display !== 'none') { subNavContainerMobile.hide(); pageNavShadow.hide(); } pageNavShadow.toggle(); navBotton.removeClass('open'); navBotton.find('.tool-icon-nav').removeClass('open'); $('body').removeClass('nav-open'); }); //点击document时候,搜索 用户 语言的下拉列表隐藏 $(document).on('click', function (e) { var target = e.target; var toolIconArray = toolIcon.toArray(); var toolBoxArray = toolBox.toArray(); var res = toolIconArray.concat(toolBoxArray); res.push(pageNavShadow[0]); res = res.filter(function (item) { if ($.contains(item, target) || target == item) { return true; } return false; }); if (res.length == 0) { $.each(toolIcon, function (index, item) { var item = $(item); $(item[0].parentNode).removeClass('current'); var target = item.attr('open-target'); target = $('#' + target); target.hide(); }); } }); function checkScreenWith(screenSizeChange) { var clientWidth = document.documentElement.clientWidth; if (clientWidth > smallScreenWidth) { isSmallScreen = false; } else { isSmallScreen = true; } screenSizeChange && screenSizeChange(); } checkScreenWith(); $(window).on('resize', function () { checkScreenWith(); }); // 初始化 导航 function initNav() { subNav.hide(); subNavItems.removeClass('current'); secondNavItems.removeClass('current'); } // 导航开关的打开和关闭 navBotton.on('click', function (e) { e.preventDefault(); initNav(); $('body').toggleClass('nav-open'); if (isSmallScreen) { subNavContainerMobile.toggle(); if ($(this).hasClass('open')) { pageNavShadow.hide(); } else { pageNavShadow.show(); } $(this).toggleClass('open'); } else { subNavContainer.toggle(); var target = $(this).attr('target'); target = $('#' + target); openFirstNav(target); } }); //关闭导航 function closeNav() { $('body').removeClass('nav-open'); subNavContainer.hide(); topNavItems.removeClass('active'); activedNav.addClass('active'); } topnavMain.on('click', '.items a', function () { var link = $(this).attr('href'); if (link.includes(window.location.pathname)) { closeNav(); } var arr = link.split('#'); var targetAnchor = ''; if (arr.length > 0) { targetAnchor = "#".concat(arr[1]); if (targetAnchor) { $("a[href=\"".concat(targetAnchor, "\"]")).click(); } } }); navBottonClose.on('click', function (e) { debugger; e.preventDefault(); closeNav(); }); //键盘事件 $(document).on('keydown', function (event) { //esc 关闭导航 if (event.keyCode == 27) { closeNav(); } }); topNavItems.on('click', function (e) { e.preventDefault(); if (!isSmallScreen) { var target = $(this).attr('target'); if (target == 'qucikNavBar') { return; } target = $('#' + target); openFirstNav(target); $('body').addClass('nav-open'); subNavContainer.show(); } }); secondNavItemsLins.on('click', function (e) { e.preventDefault(); }); //pc端 hover事件 展开二级菜单 secondNavItems.hover(function () { var current = $(this); var target = current.find('a').attr('data-target'); var subNav = current.parents('.subnav'); subNav = $(subNav[0]); var thirdNav = subNav.find('.topnav-main-items'); secondNavItems.removeClass("current"); current.addClass("current"); thirdNav.hide(); var targetNav = subNav.find('.topnav_main ' + '.' + target); targetNav.show(); }); function activatedTopNav(current) { var navId = current.attr('id'); if (navId === 'qucikNavBar') { return; } topNavItems.removeClass('active'); var currentTopNav = topNavItems.filter('[target="' + navId + '"]'); currentTopNav.addClass('active'); } function openFirstNav(current) { if (!current || !current.length) { return; } activatedTopNav(current); var target = current.attr('target'); var targetNav = $('#' + target); subNav.hide(); subNavItems.removeClass("current"); current.addClass("current"); targetNav[0].style.display = 'flex'; secondNavItems.removeClass("current"); $(targetNav.find('.topnav_side li')[0]).addClass('current'); var thirdNav = targetNav.find('.topnav-main-items'); thirdNav.hide(); $(thirdNav[0]).show(); } //pc端 hover事件 展开一级菜单 subNavItems.hover(function () { var current = $(this); openFirstNav(current); }); //移动端的导航的初始化 筛选出没有child的节点 function initSubNavContainerMobile() { var items = subNavContainerMobile.find('li'); $.each(items, function (index, item) { item = $(item); var children = item.children('.children'); if (children.length === 0 || children.children('li').length === 0) { item.addClass('no-child'); } }); } initSubNavContainerMobile(); //移动端的导航的展开 subNavContainerMobile.on('click', 'li', function (e) { e.stopPropagation(); var target = $(e.currentTarget); var parent = $(e.currentTarget.parentNode); var children = target.children('.children'); if (children.length > 0 && children.children('li').length > 0) { var others = parent.children('li'); others.children('.children').slideUp('fast'); target.removeClass('current'); if (children[0].style.display !== 'block') { target.addClass('current'); children.slideDown('fast'); } } }); subNavContainerMobile.on('click', 'a', function (e) { var link = $(this).attr('href'); if (link.includes(location.pathname)) { window.location.href = link; window.location.reload(); } }); })(); //搜索提示 (function () { var searchBar = $('#searchBar'); var searchResList = searchBar.find('.search-res-list'); var searchInput = searchBar.find('.search-input'); var searchIcon = searchBar.find('.search-botton'); var removeWord = searchBar.find('.remove-word'); $.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') } }); function ajax(url, data, callback) { $.ajax({ type: 'get', async: true, url: url, data: data, dataType: 'json', success: function success(res) { callback(res); } }); } searchResList.hide(); //实现suggest框 function ajax_conjunctive(content) { var url_conjunctive = "/search/suggest"; var data_conjunctive = { kws: content }; ajax(url_conjunctive, data_conjunctive, function (res) { //调用成功以后的操作-关联词,如果有数据,就展示 if (res != '') { var html = ''; $.each(res, function (i, val) { html += '
  • ' + val + '
  • '; }); searchResList.html(html); searchResList.show(); } else { searchResList.hide(); } }); } function debounce(fun, delay) { var timer = null; return function (args) { var that = this; var _args = args; clearTimeout(timer); timer = setTimeout(function () { fun.call(that, _args); }, delay); }; } // keyCode :27 --esc键 // keyCode : 38--上方向键 // keyCode :40 --下方向键 var keyCodeWhitelist = [27, 38, 40]; var conjunctiveAjax = debounce(ajax_conjunctive, 500); searchInput.on('keyup focus', function (e) { var keyCode = e.keyCode; if (keyCode && keyCodeWhitelist.indexOf(keyCode) != -1) { return; } conjunctiveAjax(e.target.value); }); searchInput.on('focus', function (e) { $(this).addClass('focus'); }); searchInput.on('blur', function (e) { $(this).removeClass('focus'); }); //点击document时候,关联词弹出框隐藏 $(document).on('click', function (e) { searchResList.hide(); }); //点击关联词 searchResList.on('click', 'li', function () { searchInput.val($(this).text()); goSearch(); searchResList.hide(); }); searchIcon.on('click', function (e) { e.preventDefault(); goSearch(); }); removeWord.on('click', function (e) { e.preventDefault(); searchInput.val(''); searchResList.hide(); }); function changeSelected(direct) { var searchResListItems = searchResList.find('li'); var itemsLength = searchResListItems.length; if (itemsLength === 0) { return; } var current = searchResList.find('li.current'); var index = current.index(); switch (direct) { case 'up': index--; if (index < 0) { index = itemsLength - 1; } break; case 'down': index++; if (index > itemsLength - 1) { index = 0; } break; } searchResListItems.removeClass('current'); var current = $(searchResListItems[index]); current.addClass('current'); searchInput.val(current.text()); } //搜索框键盘事件 searchInput.on('keydown', function (event) { //方向键 回车 if (event.keyCode == 13) { goSearch(); searchResList.hide(); $(this).blur(); } //方向键 向上 if (event.keyCode == 38) { changeSelected('up'); } //方向键 向下 if (event.keyCode == 40) { changeSelected('down'); } console.log(event.keyCode); }); var goSearch = function goSearch() { var search = searchInput.val(); if ($.trim(search) == "") { return false; } //挑转到搜索结果页面 var search_url = '/search/index?search=' + JSON.stringify(encodeURIComponent(search)); window.open(search_url, '_blank'); }; })(); $(function () { function initAdSender() { $('.topnav-main--container').each(function () { var adLength = $(this).find('.billboard-sender').length; if (adLength > 0) { $(this).addClass('has-billboard'); } }); $('.billboard-sender__media').on('click', function () { var id = $(this).attr('rel_id'); $.ajax({ url: '/menuad/click', type: 'post', dataType: 'json', data: { code: id, timestamp: new Date().getTime().toString().substring(0, 10) }, success: function success(res) { if (res && res.code !== '200') { $.notify(res.errmsg, { type: "danger" }); } } }); }); } initAdSender(); });