@@ -1306,6 +1523,87 @@ $loginStatus = [ }); } + // 搜索功能相关代码 + layui.use(['layer'], function () { + var layer = layui.layer; + var $ = layui.jquery; + + // 搜索功能相关变量 + var searchMask = $('#searchMask'); + var searchInput = $('#searchInput'); + var searchBtn = $('#searchBtn'); + var searchIcons = $('#mainSearchIcon, #stickySearchIcon'); + + // 显示搜索框 + function showSearch() { + searchMask.addClass('show'); + searchInput.focus(); + } + + // 隐藏搜索框 + function hideSearch() { + searchMask.removeClass('show'); + searchInput.val('').blur(); + } + + // 执行搜索 + function doSearch() { + var keyword = searchInput.val().trim(); + if (keyword) { + window.location.href = '/search?keyword=' + encodeURIComponent(keyword); + } else { + layer.msg('请输入搜索关键词', { icon: 0 }); + } + } + + // 事件绑定 + function bindEvents() { + // 点击搜索图标显示搜索框 + searchIcons.on('click', showSearch); + + // 点击蒙版背景隐藏搜索框 + searchMask.on('click', function (e) { + if ($(e.target).hasClass('search-mask')) { + hideSearch(); + } + }); + + // 搜索按钮点击事件 + searchBtn.on('click', function (e) { + e.preventDefault(); + doSearch(); + }); + + // 回车键触发搜索 + searchInput.on('keypress', function (e) { + if (e.which === 13) { + e.preventDefault(); + doSearch(); + } + }); + + // ESC键关闭搜索框 + $(document).on('keydown', function (e) { + if (e.keyCode === 27 && searchMask.hasClass('show')) { + hideSearch(); + } + }); + + // 输入框获得焦点时全选文本 + searchInput.on('focus', function () { + this.select(); + }); + } + + // 初始化 + function init() { + bindEvents(); + } + + // 启动 + init(); + }); + // 页面加载完成后执行 document.addEventListener('DOMContentLoaded', function() { loadWebArticles(); @@ -1366,6 +1664,10 @@ $loginStatus = [
+
+ +