js实现网页定位导航功能


Posted in Javascript onMarch 07, 2017

本文实例为大家分享了js网页定位导航的具体代码,供大家参考,具体内容如下

一个循环判断当前滚动到的位置,另一个循环遍历导航条判断其id是否与滚动到的位置相同

效果如图:

js实现网页定位导航功能

实现代码:

<!DOCTYPE html>
<html>
<head lang="en">
  <meta charset="UTF-8">
  <title>地狗购物网--网页定位导航效果</title>
  <style type="text/css">
    *{
      margin: 0;
      padding: 0;
    }
    body{
      font-size: 12px;
      line-height: 1.7;
    }
    li{
      list-style: none;
    }
    #content{
      width: 800px;
      margin: 0 auto;
      padding: 20px;
    }
    #content h1{
      color: #0088bb;
    }
    #content .item{
      padding: 20px;
      margin-bottom: 20px;
      border: 1px dotted #0088bb;
    }
    #content .item h2{
      font-size: 12px;
      font-weight: bold;
      border-bottom: 2px solid #0088bb;
      margin-bottom: 10px;
    }
    #content .item li{
      display: inline;
      margin-left:10px ;
    }
    #content .item li a img{
      width: 230px;
      height: 230px;
      border: none;
    }
    #menu{
      position: fixed;
      top: 100px;
      left: 50%;
      margin-left: 400px;
      width: 80px;
    }
    #menu ul li a{
      display: block;
      margin: 5px 0;
      font-size: 14px;
      font-weight: bold;
      color: #333;
      width: 80px;
      height: 50px;
      line-height: 50px;
      text-align: center;
      text-decoration: none;
    }
    #menu ul li a:hover{
      color: #fff;
      background: #0088bb;
    }
    #menu ul li .current{
      color: #fff;
      background: #0088bb;
    }
  </style>
  <script type="text/javascript">
    window.onload = function(){
      window.onscroll=function(){
        var top = document.documentElement.scrollTop || document.body.scrollTop;
        var menus = document.getElementById("menu").getElementsByTagName("a");
        var items=document.getElementById("content").getElementsByClassName("item");

        var currentId="";
        for(var i=0;i<items.length;i++){
          var _item=items[i];
          var _itemTop = _item.offsetTop;
          if(top>_itemTop - 200){
            currentId=_item.id;
          }else{
            break;
          }
        }
        if(currentId!=""){
          //给正确的menu下的a元素class赋值
          for(var j=0;j<menus.length;j++){
            var _menu=menus[j];
            var _href=_menu.href.split("#");//因为只通过href获取的链接为一长串链接,需要通过#分成数组
            if(_href[_href.length-1]!=currentId){
              _menu.className = "";
            }else{
              _menu.className = " current";
            }
          }
        }
      }
    }
  </script>
</head>
<body>
<div id="menu">
  <ul>
    <li><a href="#item1" class="current">1F 男装</a></li>
    <li><a href="#item2">2F 女装</a></li>
    <li><a href="#item3">3F 美妆</a></li>
    <li><a href="#item4">4F 数码</a></li>
    <li><a href="#item5">5F 母婴</a></li>
  </ul>
</div>
<div id="content">
  <h1>地狗购物网</h1>
  <div id="item1" class="item">
    <h2>1F 男装</h2>
    <ul>
      <li><a href="#"><img src="img/1F.jpg" alt=""/></a></li>
      <li><a href="#"><img src="img/1F.jpg" alt=""/></a></li>
      <li><a href="#"><img src="img/1F.jpg" alt=""/></a></li>
      <li><a href="#"><img src="img/1F.jpg" alt=""/></a></li>
      <li><a href="#"><img src="img/1F.jpg" alt=""/></a></li>
      <li><a href="#"><img src="img/1F.jpg" alt=""/></a></li>
      <li><a href="#"><img src="img/1F.jpg" alt=""/></a></li>
      <li><a href="#"><img src="img/1F.jpg" alt=""/></a></li>
      <li><a href="#"><img src="img/1F.jpg" alt=""/></a></li>
    </ul>
  </div>
  <div id="item2" class="item">
    <h2>2F 女装</h2>
    <ul>
      <li><a href="#"><img src="img/2F.jpg" alt=""/></a></li>
      <li><a href="#"><img src="img/2F.jpg" alt=""/></a></li>
      <li><a href="#"><img src="img/2F.jpg" alt=""/></a></li>
      <li><a href="#"><img src="img/2F.jpg" alt=""/></a></li>
      <li><a href="#"><img src="img/2F.jpg" alt=""/></a></li>
      <li><a href="#"><img src="img/2F.jpg" alt=""/></a></li>
      <li><a href="#"><img src="img/2F.jpg" alt=""/></a></li>
      <li><a href="#"><img src="img/2F.jpg" alt=""/></a></li>
      <li><a href="#"><img src="img/2F.jpg" alt=""/></a></li>
    </ul>
  </div>
  <div id="item3" class="item">
    <h2>3F 美妆</h2>
    <ul>
      <li><a href="#"><img src="img/3F.jpg" alt=""/></a></li>
      <li><a href="#"><img src="img/3F.jpg" alt=""/></a></li>
      <li><a href="#"><img src="img/3F.jpg" alt=""/></a></li>
      <li><a href="#"><img src="img/3F.jpg" alt=""/></a></li>
      <li><a href="#"><img src="img/3F.jpg" alt=""/></a></li>
      <li><a href="#"><img src="img/3F.jpg" alt=""/></a></li>
      <li><a href="#"><img src="img/3F.jpg" alt=""/></a></li>
      <li><a href="#"><img src="img/3F.jpg" alt=""/></a></li>
      <li><a href="#"><img src="img/3F.jpg" alt=""/></a></li>
    </ul>
  </div>
  <div id="item4" class="item">
    <h2>4F 数码</h2>
    <ul>
      <li><a href="#"><img src="img/4F.png" alt=""/></a></li>
      <li><a href="#"><img src="img/4F.png" alt=""/></a></li>
      <li><a href="#"><img src="img/4F.png" alt=""/></a></li>
      <li><a href="#"><img src="img/4F.png" alt=""/></a></li>
      <li><a href="#"><img src="img/4F.png" alt=""/></a></li>
      <li><a href="#"><img src="img/4F.png" alt=""/></a></li>
      <li><a href="#"><img src="img/4F.png" alt=""/></a></li>
      <li><a href="#"><img src="img/4F.png" alt=""/></a></li>
      <li><a href="#"><img src="img/4F.png" alt=""/></a></li>
    </ul>
  </div>
  <div id="item5" class="item">
    <h2>5F 母婴</h2>
    <ul>
      <li><a href="#"><img src="img/5F.jpg" alt=""/></a></li>
      <li><a href="#"><img src="img/5F.jpg" alt=""/></a></li>
      <li><a href="#"><img src="img/5F.jpg" alt=""/></a></li>
      <li><a href="#"><img src="img/5F.jpg" alt=""/></a></li>
      <li><a href="#"><img src="img/5F.jpg" alt=""/></a></li>
      <li><a href="#"><img src="img/5F.jpg" alt=""/></a></li>
      <li><a href="#"><img src="img/5F.jpg" alt=""/></a></li>
      <li><a href="#"><img src="img/5F.jpg" alt=""/></a></li>
      <li><a href="#"><img src="img/5F.jpg" alt=""/></a></li>
    </ul>
  </div>
</div>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JQuery选中checkbox方法代码实例(全选、反选、全不选)
Apr 27 Javascript
jQuery实现的多屏图像图层切换效果实例
May 07 Javascript
javascript带回调函数的异步脚本载入方法实例分析
Jul 02 Javascript
基于JavaScript实现TAB标签效果
Jan 12 Javascript
如何在Linux上安装Node.js
Apr 01 Javascript
javascript 四十条常用技巧大全
Sep 09 Javascript
Javascript中常用类型的格式化方法小结
Dec 26 Javascript
jQuery插件HighCharts实现气泡图效果示例【附demo源码】
Mar 13 Javascript
vue基于Element构建自定义树的示例代码
Sep 19 Javascript
解析Vue 2.5的Diff算法
Nov 28 Javascript
微信小程序实现的贪吃蛇游戏【附源码下载】
Jan 03 Javascript
js canvas实现星空连线背景特效
Nov 01 Javascript
Vuejs 组件——props数据传递的实例代码
Mar 07 #Javascript
js实现百度登录框鼠标拖拽效果
Mar 07 #Javascript
Vue获取DOM元素样式和样式更改示例
Mar 07 #Javascript
原生JavaScript实现Tooltip浮动提示框特效
Mar 07 #Javascript
基于JavaScript实现图片剪切效果
Mar 07 #Javascript
详解Vue2 无限级分类(添加,删除,修改)
Mar 07 #Javascript
js放到head中失效的原因与解决方法
Mar 07 #Javascript
You might like
关于PHP中的Class的几点个人看法
2006/10/09 PHP
基于php设计模式中单例模式的应用分析
2013/05/15 PHP
php常用的安全过滤函数集锦
2014/10/09 PHP
php opendir()列出目录下所有文件的实例代码
2016/10/02 PHP
PHP实现数组根据某个字段进行水平合并,横向合并案例分析
2019/10/08 PHP
Laravel 错误提示本地化的实现
2019/10/22 PHP
jquery事件机制扩展插件 jquery鼠标右键事件。
2011/12/26 Javascript
iframe异步加载实现点击左边菜单加载右边内容实例讲解
2013/03/04 Javascript
JavaScript获取和设置CheckBox状态的简单方法
2013/07/05 Javascript
调整小数的格式保留小数点后两位
2014/05/14 Javascript
7个有用的jQuery代码片段分享
2015/05/19 Javascript
Jquery-1.9.1源码分析系列(十一)之DOM操作
2015/11/25 Javascript
jquery获取img的src值的简单实例
2016/05/17 Javascript
使用JS正则表达式 替换括号,尖括号等
2016/11/29 Javascript
JavaScript实现提交模式窗口后刷新父窗口数据的方法
2017/06/16 Javascript
浅谈Vue 函数式组件的使用技巧
2020/06/16 Javascript
python 多进程通信模块的简单实现
2014/02/20 Python
跟老齐学Python之让人欢喜让人忧的迭代
2014/10/02 Python
python 简单的绘图工具turtle使用详解
2017/06/21 Python
Python实现好友全头像的拼接实例(推荐)
2017/06/24 Python
Python Nose框架编写测试用例方法
2017/10/26 Python
Python爬虫爬取一个网页上的图片地址实例代码
2018/01/16 Python
Python列表常见操作详解(获取,增加,删除,修改,排序等)
2019/02/18 Python
Python Django框架模板渲染功能示例
2019/11/08 Python
django表单中的按钮获取数据的实例分析
2020/07/31 Python
python 实现音频叠加的示例
2020/10/29 Python
Python+Opencv实现把图片、视频互转的示例
2020/12/17 Python
Python实现网络聊天室的示例代码(支持多人聊天与私聊)
2021/01/27 Python
delegate与普通函数的区别
2014/01/22 面试题
Why we need EJB
2016/10/20 面试题
运动会广播稿60字
2014/01/15 职场文书
2014个人年度工作总结
2014/12/15 职场文书
挂靠协议书
2015/01/27 职场文书
青岛海底世界导游词
2015/02/11 职场文书
golang 实现Location跳转方式
2021/05/02 Golang
分析mysql中一条SQL查询语句是如何执行的
2021/06/21 MySQL