讲解版的导航高亮(新手福利)原生JS

1、先写样式:

导航的排版样式;

导航对应高亮样式:

.d6000f{

  background:red;

}

.d6000f a{

  color:#fff;

}

我这个地方导航高亮样式为背景红色,字体颜色为白色

2、HTML代码:

直接粘个过来

<ul class="nav">
   
  <li class="aa"><a class="aaa" href="/">首页</a></li>
   
  <li class="aa"><a class="aaa" href="***">11111</a>
   
  <div class="nav2 ntop" id="nav2">
   
  <ul class="nav2_ul">
   
  <li><a href="***">111112</a></li>
   
  <li><a href="***">111113</a></li>
   
  <li><a href="***">111114</a></li>
   
  <li><a href="***">111115</a></li>
   
  <li><a href="***">111116</a></li>
   
  </ul>
   
  </div>
   
  </li>
   
  <li class="aa"><a class="aaa" href="***">22222</a></li>
   
  <li class="aa">
   
  <a class="aaa" href="***">33333</a>
   
  <div class="nav2 ntop" id="nav3">
   
  <ul class="nav2_ul">
   
  <li><a href="***">333332</a></li>
   
  <li><a href="***">333333</a></li>
   
  </ul>
   
  </div>
   
  </li>
   
  <li class="aa"><a class="aaa" href="***">44444</a></li>
   
  <li class="aa"><a class="aaa" href="***">55555</a></li>
   
  <li class="aa"><a class="aaa" href="***">66666</a></li>
   
  </ul>

因为在网站中每个顶级导航栏对应不同的页面,那么我们如何让它在对应的页面时,对应的li高亮呢?

下面我们用js代码写下操作。

3、JS代码:

<!--导航高亮jsd代码-->
<script type="text/javascript" language="javascript">
      /*顶级导航所有的li*/
     
var links = document.getElementsByClassName("aa");
      /*顶级导航所有的li对应的a*/
     
var lilen = document.getElementsByClassName("aaa");
      /*当前地址栏的url*/
     
var currenturl = document.location.href;
      /*创建变量用来接收数据*/
     
var last = 0;
      /*遍历顶级导航中所有li*/
     
for (var i=0;i<links.length;i++)
      {
            /*声明变量接收每个li的url*/
           
var linkurl lilen[i].getAttribute("href");
            /*判断当前地址栏的url和当前li的url路径对应则执行下面赋值("indexof"判断为-1时,是找不到对应的字符串,而"! = -1",说的就是可以找到对应的字符串)*/
           
if(currenturl.indexOf(linkurl)!=-1)
            {
                  /*将当前的li的索引赋给last*/
                 
last = i;
            }
      }
      /*当前li设置class名称为设置好的样式"d6000f"*/
     
links[last].className = "d6000f";

</script>

原文地址:https://www.cnblogs.com/thongyan/p/6186932.html