导航栏状态处理
html
<nav role="navigation">
<ul class="menu nav navbar-nav">
<!-- 首页 -->
<li class="first leaf" id="5001556">
<a href="/" title="" class="">首页</a>
</li>
<!-- 走进中心 -->
<li class="expanded dropdown" id="5001572">
<a>走进中心 <span class="caret"></span></a>
<ul class="dropdown-menu">
<li class="first leaf">
<a href="/web/column/col5001573.html" title="">中心动态</a>
</li>
<li class="leaf">
<a href="/web/column/col5001574.html" title="">通知公告</a>
</li>
<li class="last leaf">
<a href="/web/column/col5001575.html">关于中心</a>
</li>
</ul>
</li>
<!-- 青少年活动 -->
<li class="expanded dropdown" id="5001571">
<a>青少年活动 <span class="caret"></span></a>
<ul class="dropdown-menu">
<li class="first leaf">
<a href="/web/column/col5001576.html" title="">青少年科技活动</a>
</li>
<li class="last leaf">
<a href="/web/column/col5001577.html" title="">市科教工作者协会</a>
</li>
</ul>
</li>
<!-- 创新服务 -->
<li class="expanded dropdown" id="5001570">
<a>创新服务 <span class="caret"></span></a>
<ul class="dropdown-menu">
<li class="first leaf">
<a href="/web/column/col5001578.html" title="">知识产权服务</a>
</li>
<li class="last leaf">
<a href="/web/column/col5001579.html" title="">技术合同认定登记</a>
</li>
</ul>
</li>
<!-- 学会服务 -->
<li class="expanded dropdown" id="5001569">
<a>学会服务 <span class="caret"></span></a>
<ul class="dropdown-menu">
<li class="first leaf">
<a href="/web/column/col5001580.html" title="">学会学术服务</a>
</li>
<li class="leaf">
<a href="/web/column/col5001581.html" title="">市科青联</a>
</li>
<li class="last leaf">
<a href="/web/column/col5001582.html" title="">女科技工作者协会</a>
</li>
</ul>
</li>
<!-- 党的建设 -->
<li class="last leaf">
<a href="/web/column/col5001568.html" title="">党的建设</a>
</li>
</ul>
</nav>处理方式,通过 js 来完成状态的逻辑,最后标记上 active
html
<hlx-template
component-type="column"
component-query-option="{}"
component-variable="fixBugOnHeaderActiveUseColumn"
></hlx-template>
<script type="text/javascript" th:inline="javascript">
// 处理原站 nav 中 active 状态的问题
window.addEventListener("DOMContentLoaded", function () {
var columuInfo = /*[[${fixBugOnHeaderActiveUseColumn}]]*/ ;
// 用于处理导航 active 状态
// 特定栏目下,状态栏应该是 active
var fix_bug_on_header_active_on_hlx = {
// 首页
5001556:[],
// 走进中心
5001572:[5001573,5001574,5001575],
// 青少年活动
5001571:[5001576,5001577],
// 创新服务
5001570:[5001578,5001579],
// 学会服务
5001569:[5001580,5001581,5001582],
// 党的建设
5001568:[]
}
if(!columuInfo)return;
var currentColumnId = columuInfo.id;
console.log('currentColumnId > ', currentColumnId);
for(var key in fix_bug_on_header_active_on_hlx){
console.log(key , '===', currentColumnId , '==>', key === currentColumnId);
if(key === currentColumnId){
// 当前栏目
setActive(key);
return;
}
// 子栏目
var subColumnList = fix_bug_on_header_active_on_hlx[key];
for(var i=0;i<subColumnList.length;i++){
console.log(key,' > ', subColumnList[i] , '===', currentColumnId , '==>', subColumnList[i] === currentColumnId);
if(subColumnList[i] === currentColumnId){
setActive(key);
return;
}
}
}
function setActive(columnId){
document.getElementById(columnId).classList.add('active');
}
});
</script>