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. mysql存储过程详细教程

    记录mysql存储过程中的关键语法:DELIMITER //  声明语句结束符,用于区分;CREATE PROCEDURE demo_in_parameter(IN p_in int)  声明存储过程 ...

  2. ARCGIS Server 发布服务时出现的问题解决

    target='CFH.ConfigurationFactoryHost'  machine='IBM3850X5'  thread='24072'  elapsed='0.31200'>Ser ...

  3. 关于jQuery中环境配置中的问题

    一开始无法显示出效果,配置和代码如 这代码本没有错 但是就是无法显示 原因是我下载了2.x版本的jQuery,jQuery2.x版本是不支持IE6/7/8的,也有很多主流的浏览器无法显示出效果,于是在 ...

  4. ASP.NET之Cookie(坑爹的Response.Cookies.Remove)(转)

      在web开发中Cookie是必不可少的 .NET自然也有一个强大的Cookie操作类,我们用起来也非常方便,不过在使用中我们会发现一个坑爹的事情Response.Cookies.Remove删除不 ...

  5. 因为此版本的应用程序不支持其项目类型(.csproj)”之解

    有的时候vs无缘无故的出现如下错误:"因为此版本的应用程序不支持其项目类型(.csproj),若要打开它,请使用支持此类型项目的版本" 解决办法:如果是这个提示,可能是由于你安装m ...

  6. unity中三种调用其他脚本函数的方法

    第一种,被调用脚本函数为static类型,调用时直接用  脚本名.函数名()第二种,GameObject.Find("脚本所在的物体的名字").SendMessage(" ...

  7. python爬虫:一些常用的爬虫技巧

    python爬虫:一些常用的爬虫技巧 1.基本抓取网页 get方法: post方法: 2.使用代理IP 在开发爬虫过程中经常会遇到IP被封掉的情况,这时就需要用到代理IP; 在urllib2包中有Pr ...

  8. 重写form 表单的验证信息

    (function($) { var isformValidationPostBack=true; var isformValidation = false; $.extend({ formValid ...

  9. 浅谈WebSocket

    WebSocket是H5提出的为了解决客户端和服务器双工通信的方法.在我们使用HTTP协议通信时,客户端主动向服务器发送请求,得到服务器端数据.为了与服务器端数据保持一致,之前常用的有轮询和长轮询两种 ...

  10. mysql查询表的数据大小

    在需要备份数据库里面的数据时,我们需要知道数据库占用了多少磁盘大小,可以通过一些sql语句查询到整个数据库的容量,也可以单独查看表所占容量. 1.要查询表所占的容量,就是把表的数据和索引加起来就可以了 ...