我有一个HTML网站,在移动的视图中,菜单设置为使用JavaScript切换菜单,代码是一个JavaScript文件内:file菜单工作正常,但在某些页面中,在使用此文件时,我的一些滑块受到影响,因此我不得不删除此文件,但随后切换菜单不会出现,而桌面菜单出现example有没有一种方法来分离切换菜单代码从这个javascript文件,提前感谢
ql3eal8s1#
首先,你的示例是一个痛苦的阅读,特别是你的JS文件。就这样了现在,我不知道为什么你有这么多行代码只是切换一个菜单。你需要的是一些CSS和一点JavaScript来切换类。如果是我的话,就这样吧。所以,这里有一个小东西从我的CodePen来帮助说明我的观点。你可以只修改文件和使用它的菜单
$('a.drop').click(function(e) { e.preventDefault(); $(this).next().toggleClass('active'); }); $('.toggle').click(function(e) { e.preventDefault(); $('nav > .menu').toggle(); $(this).html(($(this).html() == 'x' ? '☰' : 'x')); });
* { margin: 0; padding: 0; box-sizing: border-box; } nav { position: relative; display: flex; align-items: center; justify-content: space-between; background-color: rgba(255,255,255,.8); } h5 {padding: 8px;} nav > .menu { display: none; position: absolute; top: 100%; left: 0; right: 0; width: 100%; max-height: 400px; background-color: rgba(255,255,255,.8) } ul { list-style: none; padding-left: 12px; } .toggle {display: block} a {text-decoration: none;} li a:hover { background-color: rgba(0,0,0,.1); } .links {white-space: nowrap;} a { display: block; position: relative; padding: 8px 12px; } a.drop { padding-right: 24px; } a.drop:after { content: ''; position: absolute; top: 50%; right: 8px; transform: translateY(-75%) rotate(45deg); width: 5px; height: 5px; border: 2px solid #444; border-color: transparent #444 #444 transparent; } .menu .menu, ul.menu .list { display: none; } .menu .menu.active, ul.menu .list.active, .menu.active > .list { display: block; } @media screen and (min-width: 768px) { .toggle {display: none} nav > .menu { width: 90%; display: flex; position: relative; justify-content: center; } nav > ul > li > a { padding: 32px!important; } li:hover > .list, li:hover > .menu { border-top: 2px solid #333; display: block; position: absolute; top: 100%; left: 0; width: 100%; z-index: 1; } li:hover .menu > .list { display: inline-block; } li:hover .menu a { max-width: 120px; } }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <nav> <a href="#" class="logo"><img src="https://picsum.photos/seed/picsum/60" alt=""></a> <ul class="menu"> <li><a href="#">Link 1</a></li> <li> <a href="#" class="drop">Menu 1</a> <ul class="list"> <li><a href="#">Sub Link 1</a></li> <li><a href="#">Sub Link 2</a></li> </ul> </li> <li> <a href="#" class="drop">Menu 2</a> <div class="menu"> <ul class="list"> <li><h5>Sub Header 1</h5></li> <li><a href="#">Sub Link 3</a></li> <li><a href="#">Sub Link 4</a></li> </ul> <ul class="list"> <li><h5>Sub Header 2</h5></li> <li><a href="#">Sub Link 3</a></li> <li><a href="#">Sub Link 4</a></li> </ul> </div> </li> <li><a href="#">Link 2</a></li> </ul> <div class="links">F T G I S </div> <a href="#" class="toggle">☰</a> </nav>
1条答案
按热度按时间ql3eal8s1#
首先,你的示例是一个痛苦的阅读,特别是你的JS文件。就这样了
现在,我不知道为什么你有这么多行代码只是切换一个菜单。你需要的是一些CSS和一点JavaScript来切换类。如果是我的话,就这样吧。
所以,这里有一个小东西从我的CodePen来帮助说明我的观点。你可以只修改文件和使用它的菜单