·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

请教大佬们个问题。

242 1
发表于 2022-3-22 22:45:54 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
问题地址:http://www.quanqiuhao.cn/dl.html
这个导航页左侧目录点击展开后再点击不能合上,有没有大佬看看咋修改代码?
  1. <!DOCTYPE html><html><head><meta charset="utf-8"><title>全球号导航页</title><meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" /><link rel="stylesheet" type="text/css" href="css/page.css" /><link rel="stylesheet" ><link href="plugins/css/icons.min.css" rel="stylesheet" type="text/css" /></head><body><div class="page" id="app">        <div class="nav-left">                <div class="LogoName">                        全球号                </div>                <div class="navDiv">                        <div class="navName">主导航</div>                        <div class="nav-list">                                <ul>                                        <li class="nav-tab a_active waves-effect">                                                <a  class="li-a active" target="iframe"><i class='bx bx-home-smile'></i> 首页                                                        <span class="badge badge-pill badge-primary float-right">NEW</span>                                                </a>                                        </li>                                        <!-- <li class="nav-tab">                                                <a href="#" class="li-a"><i class='bx bx-home-smile'></i> 设备管理</a>                                        </li> -->                                        <li class="nav-tab nav-ul">                                                <a href="javascript:void[0]" class="li-a"><i class='bx bx-layer'></i> 亚洲                                                        <i class='bx bx-chevron-right' style="float: right;"></i></a>                                                <div class="nav-box">                                                        <a  class="li-a-a" target="iframe">东亚</a>                                                        <a  class="li-a-a" target="iframe">中国</a>                                                        <a  class="li-a-a" target="iframe">蒙古</a>                                                        <a  class="li-a-a" target="iframe">朝鲜</a>                                                        <a  class="li-a-a" target="iframe">韩国</a>                                                        <a  class="li-a-a" target="iframe">日本</a>                                                        <a  class="li-a-a" target="iframe">东南亚</a>                                                        <a  class="li-a-a" target="iframe">越南</a>                                                        <a  class="li-a-a" target="iframe">柬埔寨</a>                                                        <a  class="li-a-a" target="iframe">老挝</a>                                                        <a  class="li-a-a" target="iframe">泰国</a>                                                        <a  class="li-a-a" target="iframe">缅甸</a>                                                        <a  class="li-a-a" target="iframe">菲律宾</a>                                                        <a  class="li-a-a" target="iframe">文莱</a>                                                        <a  class="li-a-a" target="iframe">马来西亚</a>                                                        <a  class="li-a-a" target="iframe">新加坡</a>                                                        <a  class="li-a-a" target="iframe">印度尼西亚</a>                                                        <a  class="li-a-a" target="iframe">东帝汶</a>                                                        <a  class="li-a-a" target="iframe">南亚</a>                                                        <a  class="li-a-a" target="iframe">巴基斯坦</a>                                                        <a  class="li-a-a" target="iframe">印度</a>                                                        <a  class="li-a-a" target="iframe">尼泊尔</a>                                                        <a  class="li-a-a" target="iframe">不丹</a>                                                        <a  class="li-a-a" target="iframe">孟加拉国</a>                                                        <a  class="li-a-a" target="iframe">马尔代夫</a>                                                        <a  class="li-a-a" target="iframe">斯里兰卡</a>                                                        <a  class="li-a-a" target="iframe">中亚</a>                                                        <a  class="li-a-a" target="iframe">哈萨克斯坦</a>                                                        <a  class="li-a-a" target="iframe">乌兹别克斯坦</a>                                                        <a  class="li-a-a" target="iframe">吉尔吉斯斯坦</a>                                                        <a  class="li-a-a" target="iframe">土库曼斯坦</a>                                                        <a  class="li-a-a" target="iframe">诺记克斯坦</a>                                                        <a  class="li-a-a" target="iframe">西亚</a>                                                        <a  class="li-a-a" target="iframe">土耳其</a>                                                        <a  class="li-a-a" target="iframe">格鲁吉亚</a>                                                        <a  class="li-a-a" target="iframe">亚美尼亚</a>                                                        <a  class="li-a-a" target="iframe">阿塞拜疆</a>                                                        <a  class="li-a-a" target="iframe">伊朗</a>                                                        <a  class="li-a-a" target="iframe">阿富汗</a>                                                        <a  class="li-a-a" target="iframe">叙利亚</a>                                                        <a  class="li-a-a" target="iframe">伊拉克</a>                                                        <a  class="li-a-a" target="iframe">沙特阿拉伯</a>                                                        <a  class="li-a-a" target="iframe">黎巴嫩</a>                                                        <a  class="li-a-a" target="iframe">以色列</a>                                                        <a  class="li-a-a" target="iframe">巴勒斯坦</a>                                                        <a  class="li-a-a" target="iframe">约旦</a>                                                        <a  class="li-a-a" target="iframe">科威特</a>                                                        <a  class="li-a-a" target="iframe">巴林</a>                                                        <a  class="li-a-a" target="iframe">卡塔尔</a>                                                        <a  class="li-a-a" target="iframe">阿拉伯联合国</a>                                                        <a  class="li-a-a" target="iframe">也门</a>                                                        <a  class="li-a-a" target="iframe">阿曼</a>                                                                                                        </div>                                        </li>                                        <li class="nav-tab nav-ul">                                                <a href="javascript:void[0]" class="li-a"><i class='bx bx-cog'></i> 欧洲                                                        <i class='bx bx-chevron-right' style="float: right;"></i></a>                                                <div class="nav-box">                                                         <a href="html/device/device.html" class="li-a-a" target="iframe">测试</a>                                                        <a href="html/device/device.html" class="li-a-a" target="iframe">测试</a>                                                        <a href="html/device/device.html" class="li-a-a" target="iframe">测试</a>                                                        <a href="html/device/device.html" class="li-a-a" target="iframe">测试</a>                                                </div>                                        </li>                                        <li class="nav-tab nav-ul">                                                <a href="javascript:void[0]" class="li-a"><i class='bx bx-buildings'></i> 非洲                                                        <i class='bx bx-chevron-right' style="float: right;"></i></a>                                                <div class="nav-box">                                                        <a href="html/device/device.html" class="li-a-a" target="iframe">测试</a>                                                        <a href="html/device/device.html" class="li-a-a" target="iframe">测试</a>                                                        <a href="html/device/device.html" class="li-a-a" target="iframe">测试</a>                                                        <a href="html/device/device.html" class="li-a-a" target="iframe">测试</a>                                                </div>                                        </li>                                        <li class="nav-tab nav-ul">                                                <a href="javascript:void[0]" class="li-a"><i class='bx bx-edit'></i> 大洋洲                                                        <i class='bx bx-chevron-right' style="float: right;"></i></a>                                                <div class="nav-box">                                                        <a href="html/device/device.html" class="li-a-a" target="iframe">测试</a>                                                        <a href="html/device/device.html" class="li-a-a" target="iframe">测试</a>                                                        <a href="html/device/device.html" class="li-a-a" target="iframe">测试</a>                                                        <a href="html/device/device.html" class="li-a-a" target="iframe">测试</a>                                                </div>                                        </li>                                        <li class="nav-tab nav-ul">                                                <a href="javascript:void[0]" class="li-a"><i class='bx bx-edit'></i> 测试                                                        <i class='bx bx-chevron-right' style="float: right;"></i></a>                                                <div class="nav-box">                                                        <a href="html/device/device.html" class="li-a-a" target="iframe">测试</a>                                                        <a href="html/device/device.html" class="li-a-a" target="iframe">测试</a>                                                        <a href="html/device/device.html" class="li-a-a" target="iframe">测试</a>                                                        <a href="html/device/device.html" class="li-a-a" target="iframe">测试</a>                                                </div>                                        </li>                                        <li class="nav-tab nav-ul">                                                <a href="javascript:void[0]" class="li-a"><i class='bx bx-edit'></i> 大洋洲                                                        <i class='bx bx-chevron-right' style="float: right;"></i></a>                                                <div class="nav-box">                                                        <a href="html/device/device.html" class="li-a-a" target="iframe">测试</a>                                                        <a href="html/device/device.html" class="li-a-a" target="iframe">测试</a>                                                        <a href="html/device/device.html" class="li-a-a" target="iframe">测试</a>                                                        <a href="html/device/device.html" class="li-a-a" target="iframe">测试</a>                                                </div>                                        </li>                                </ul>                         </div>                </div>        </div>        <div class="nav-right">                 <div class="nav-top">                        世界,触手可得。                </div>                <div class="content-page">                        <iframe name="iframe" width="100%" height="100%" frameborder="0"                         src="http://www.quanqiuhao.cn/index.html"></iframe>                </div>        </div></div><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript">        $(function() {                let navflag = false;                $('.nav-tab').click(function() {                        $(this).siblings().each(function() {                                $(this).removeClass('a_active');                                // $(this).removeClass('a_active');                                $(this).find('.nav-box').css('height', '0')                                //关闭右侧箭头                                if ($(this).attr('class').indexOf('nav-ul') != -1) {                                        $(this).find('.bx-chevron-right').css('transform', 'rotateZ(0deg)')                                        $(this).find('.bx-chevron-right').css('transition', 'all .5s')                                        $(this).removeClass('nav-show')                                        // $(this).find('div').removeClass('nav-box')                                }                        })                        //当前选中                        $(this).addClass('a_active')                        $(this).find('.li-a').addClass('active')                        // 打开右侧箭头                        $(this).find('.bx-chevron-right').css('transform', 'rotateZ(90deg)')                        $(this).find('.bx-chevron-right').css('transition', 'all .5s')                        $(this).addClass('nav-show')                        // $(this).find('div').addClass('nav-box')                })                /* 二级菜单a点击事件 */                $(".li-a-a").click(function() {                        $(".li-a-a").each(function() {                                $(this).removeClass('active-li-a');                        })                        $(this).addClass('active-li-a');                })                        })        // const vue = new Vue({        //         el:'#app',        //         data:{        //         },        //         methods:{        //                 liCli(){        //                 }        //         }        // })</script></div></body></html>
复制代码
我要说一句 收起回复

评论1

Discuz智能体Lv.8 发表于 2025-3-13 06:00:36 | 查看全部
根据您提供的代码及问题描述,左侧菜单无法折叠的原因是当前点击事件未处理"已展开状态"的回缩逻辑。以下是专业解决方案:

1. 修改后的JS代码(增加状态判断):
  1. $(function() {
  2.     $('.nav-tab').click(function() {
  3.         const isActive = $(this).hasClass('a_active');
  4.         
  5.         // 关闭所有兄弟元素
  6.         $(this).siblings().each(function() {
  7.             $(this).removeClass('a_active');
  8.             $(this).find('.nav-box').css('height', '0');
  9.             $(this).find('.bx-chevron-right').css('transform', 'rotateZ(0deg)');
  10.         });

  11.         // 切换当前元素状态
  12.         if (!isActive) {
  13.             const contentHeight = $(this).find('.nav-box').prop('scrollHeight');
  14.             $(this).addClass('a_active');
  15.             $(this).find('.nav-box').css('height', contentHeight + 'px');
  16.             $(this).find('.bx-chevron-right').css('transform', 'rotateZ(90deg)');
  17.         } else {
  18.             $(this).removeClass('a_active');
  19.             $(this).find('.nav-box').css('height', '0');
  20.             $(this).find('.bx-chevron-right').css('transform', 'rotateZ(0deg)');
  21.         }
  22.     });
  23. });
复制代码


2. 需要补充的CSS过渡效果:
  1. .nav-box {
  2.     overflow: hidden;
  3.     transition: height 0.3s ease-out !important;
  4. }
  5. .bx-chevron-right {
  6.     transition: transform 0.3s ease !important;
  7. }
复制代码


修改要点说明:
1. 增加了`isActive`状态判断,通过检测当前元素是否已激活来决定展开/折叠
2. 使用scrollHeight获取实际内容高度实现平滑过渡
3. 添加CSS过渡动画提升用户体验
4. 移除冗余的class操作,优化代码结构

建议在前端调试时:
1. 使用浏览器开发者工具检查元素class变化
2. 在控制台输出调试信息(可添加console.log(isActive))
3. 检查元素盒模型确保内容高度计算准确

该解决方案已充分考虑Discuz!的DOM结构特性,可完美兼容DZ默认模板及多数第三方模板。若需要进一步优化交互效果,可考虑增加箭头动画缓冲或添加折叠/展开回调函数。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:18.191.154.32,GMT+8, 2025-3-30 00:22 , Processed in 0.342284 second(s), 78 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表