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. 如何用grunt压缩文件

    grunt-cli 全局装完之后,就可以给每个项目装grunt了.   1.先把package.json和Gruntfile.js拷到项目下(PS:这两个文件是每个项目装grunt的时候必带的) 2. ...

  2. Android开源项目分类汇总

    目前包括: Android开源项目第一篇——个性化控件(View)篇   包括ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageView. ...

  3. 配置移动前端开发调试环境(nodejs+npm+weiner的安装和配置使用)

    这段时间发现做移动端的开发调试是一大难题,网上逛了逛发现有一些工具可用,如chrome的远程调试,实际测试过程中我始终调试不成功,听说被墙后是不行的,所以最终找了如下的方法. 因为基于nodeJS环境 ...

  4. Acadia Lab 228 + Lab 222

    又是一对串烧实验,布好线后非常方便就可以一起完成. 连线方案一模一样: Lab 228 数码管骰子 核心代码如下: def loop() : global cnt global btn_read,se ...

  5. C语言基础补习

    coolshell 中一个小例子在VC6.0编译后反汇编结果仅作记录: 源码: #include <stdio.h> int main(void) { ]; printf("%x ...

  6. css中伪元素before或after中content的特殊用法attr

    html代码如下: <div class="haorooms"> <span data-haorooms="haorooms鼠标效果tips-纯css& ...

  7. 邮箱验证 各种邮箱的smtp

    常见邮箱的SMTP设置 QQ 邮箱举例:(地址test@qq.com)(账号test)(密码***)(SMTP服务smtp.qq.com)(端口25)(注意:请手动开通SMTP功能,通过网页登录qq邮 ...

  8. uitableview性能优化(转)

    这个感觉写的很好 收藏一下 以备后用 转自 http://www.cnblogs.com/pengyingh/articles/2354714.html 在iOS应用中,UITableView应该是使 ...

  9. [原创.数据可视化系列之三]使用Ol3加载大量点数据

    不管是百度地图还是高德地图,都很难得见到在地图上加载大量点要素,比如同屏1000的,因为这样客户端性能会很低,尤其是IE系列的浏览器,简直是卡的要死.但有的时候,还真的需要,比如,我要加载全球的AQI ...

  10. char类型输出地址

    问题描述: 当输出char的地址时,发现输出的是一个字符: char ch = 'a'; cout<<&ch<<endl;//a @ 因为cout得到一个char类型的 ...