javascript - 项目处于活动状态时如何保持子菜单打开
问题描述
我有一个侧边栏导航菜单。我对它的工作方式感到满意,但是我想在菜单项处于活动状态后保持子菜单打开,因此当所选链接打开时,父/子会突出显示并且子菜单保持打开状态。目前它保持突出显示,但菜单关闭。
Jsfiddle在这里: https ://jsfiddle.net/3q56nxth/1/#&togetherjs=eEoC5Iby2b
function removeExtraUrl(){
setTimeout(function () {
window.history.pushState('page', 'Title', '/new-knowledge');
}, 100);
}
function smoothScroll(targetID, offSet=0){
var element=document.getElementById(targetID);
var duration=300;
zenscroll.center(element,duration,offSet);
removeExtraUrl();
}
$(function() {
$('.sidebar-container a[href^="/' + location.pathname.split("/")[1] + '"]').addClass('active');
});
li.sidebar-item{
list-style-type: none;
text-align: left;
padding-top: 5%;
padding-bottom: 20px;
max-width: 950px;
margin-left: auto;
margin-right: auto;
}
.sidebar-container li:hover .article-sub__sidebar {
display: block;
max-height: 200px;
}
.article-sub__sidebar {
overflow: hidden;
max-height: 0;
-webkit-transition: all 0.5s ease-out;
}
ul.quick-links-hero{
display:none;}
.sidebar-item>a{
text-decoration:none;
font-family: 'Montserrat', sans-serif;
font-size: 16px;
line-height: 26px;
font-weight: 500;
color: #5f6d7a;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
margin: 0;
position: relative;
}
.sidebar-item>a:hover{
background: -webkit-linear-gradient(#6F3E9E,#C9249E);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;}
.sidebar-container{
display:block !important;
-webkit-box-shadow: 0 6px 25px 6px rgba(0, 0, 0, 0.08);
box-shadow: 0 6px 25px 6px rgba(0, 0, 0, 0.08);
-webkit-border-radius: 12px;
border-radius: 12px;
text-align: center;
padding: 40px;
-webkit-transition: all 200ms ease-in-out;
-o-transition: all 200ms ease-in-out;
transition: all 200ms ease-in-out;
background-color: #FFFFFF;
overflow: hidden;
width:20%;
position: fixed;
z-index: 2;
}
<header class="header--natural">
<script src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
</header>
<section>
<div id="article-sidemenu">
<div class="sidebar-container">
<ul>
<li class="sidebar-item"><a href="#">on-page link </a></li>
<li class="sidebar-item"><a href="/blog-template">Blog Template</a></li>
<li class="sidebar-item"><a href="">Knowledge Base</a>
<ul class="article-sub__sidebar">
<li class="sidebar-item"><a href="">Sub Heading</a></li>
<li class="sidebar-item"><a href="/blog-template">Sub Heading</a></li>
<li class="sidebar-item"><a href="">Sub Heading</a></li>
</ul>
</li>
<li class="sidebar-item"><a href="#">Contact us</a></li>
</ul>
</div>
</div>
</section>
解决方案
推荐阅读
- haskell - 如何修复 Haskell 中的错误“非详尽模式”
- javascript - 包含来自 Json 数组的数据的表,如何添加多个子行
- python-3.x - Python中是否有一种方法可以“检查”文本文件是否已被修改或附加?
- r - 这是否模拟了指定的时间序列?
- lisp - “冒号后的非法终止字符:#\”在portacle中,但代码中没有冒号
- c++ - 如何使用断言对数组进行测试?
- haskell - 如何在 Dhall 中表示“Data.Map Text Text”?
- r - purrr 与 pluck 相对(丢弃元素)+ 在 pluck 中保留列表结构
- javascript - 如何用玩笑测试更新组件状态的函数
- python-3.x - Pandas read_csv 方法在使用 ISO 8859-15 编码时无法正确获取“-”字符