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>

讲解版的导航高亮(新手福利)原生JS的更多相关文章

  1. 用原生JS实现爱奇艺首页导航栏

    以下是爱奇艺首页的一个导航栏,用原生js写的,静态页面效果如下: 代码如下: <html> <head> <title>爱奇艺</title> < ...

  2. 讲解版的自动轮播(新手福利)样式和js就不分离了为了看的方便

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  3. JS原生代码实现导航高亮

    一 实现原理 根据当前页面滚动条的高度判断当前页面应当与导航栏中哪个导航相关联,并对相应的导航设置高亮样式. 二 代码解析 先简单写一个页面顶端的导航栏:<nav>  <ul> ...

  4. vue使用原生js实现滚动页面跟踪导航高亮

    需要使用vue做一个专题页面. 滚动页面指定区域导航高亮. BetterScroll:可能是目前最好用的移动端滚动插件 如何自定义CSS滚动条的样式? 监听滚动页面事件,对比当前页面的位置与元素的位置 ...

  5. 原生JS实现全屏切换以及导航栏滑动隐藏及显示——重构前

    思路分析: 向后滚动鼠标滚轮,页面向下全屏切换:向前滚动滚轮,页面向上全屏切换.切换过程为动画效果. 第一屏时,导航栏固定在页面顶部,切换到第二屏时,导航条向左滑动隐藏.切换回第一屏时,导航栏向右滑动 ...

  6. 原生JS实现购物车结算功能代码+zepto版

    html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3 ...

  7. 原生js获取鼠标坐标方法全面讲解-zmq

    原生js获取鼠标坐标方法全面讲解:clientX/Y,pageX/Y,offsetX/Y,layerX/Y,screenX/Y 一.关于js鼠标事件综合各大浏览器能获取到坐标的属性总共以下五种:eve ...

  8. 原生js写的贪吃蛇网页版游戏特效

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <bo ...

  9. thinkphp实现导航高亮的简单方法

    经常会涉及到关于导航菜单高亮显示的问题,大多是通过配合js或者事先分配变量的方式来实现导航高亮的,这里提供另一种思路参考: <ul class="usermenu"> ...

随机推荐

  1. VC++ GDI 总结 一一 CBitmap类

    class CBitmap : public CGdiObject { DECLARE_DYNAMIC(CBitmap) public: static CBitmap* PASCAL FromHand ...

  2. php返回数据库查询时出现Resource id #2

    1.使用php调用MySQL数据库的过程是不是先用mysql_query(SELECT*...)或mysql_list_dbs()等查询函数返回结果指针(mysql查询函数中还有没有这样的返回指针函数 ...

  3. js 赋值 要用 toString() ; 太坑了。

    js 赋值 要用 toString() ;     太坑了. js 赋值 要用 toString() ;     太坑了. js 赋值 要用 toString() ;     太坑了.

  4. 史航第12次作业&总结

    作业1:找出最长的字符串 #include <stdio.h> #include <string.h> int main() { ],strings[][]; ; printf ...

  5. 走进异步编程的世界 - 开始接触 async/await

    [C#] 走进异步编程的世界 - 开始接触 async/await   走进异步编程的世界 - 开始接触 async/await 序 这是学习异步编程的入门篇. 涉及 C# 5.0 引入的 async ...

  6. java基础快捷键(1)

    1)  输出快捷键:System.out.println():在键盘上输入  Syso  然后按  Alt + ?:就出来了:System.out.println(); 2)主方法:(main): 快 ...

  7. wpf 常见死锁方式

    Thread tr0 = new Thread(new ParameterizedThreadStart((obj1) => { lock (aaa) { Thread.Sleep(); thi ...

  8. mysql 常用查询

    1.unix时间戳的使用 unix_timesamp.from_unixtime 函数 和 datatime_format函数. // 从datetime 类型取做整形 unixtime时间戳; se ...

  9. I/O流——字符流

    字符流 字节流提供处理任何类型输入/输出操作的足够功能,但不能直接操作Unicode字符,因而需要字符流. 字符流层次结构的顶层是Reader和Writer抽象类. 实际上,字符流的底层就是字节流. ...

  10. python之 list、tuple、dict、set

    2016-08-24   14:32:59 list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 例如:定义一个列表L,里面存放了一些姓氏 ...