在做项目的过程中碰到的问题,一开始还很顺利,在编写父子导航时出现了问题,经过研究,终于解决。

  1. 关于锚点定位,我们通常都是a标签写上#id名字,然后在目标上写上id名字。然而我采用的不是这种,而且利用自定义属性来设置,然后来获取里面的#id。
  2. 平滑跳转其实很简单,就是利用jq中animate(),然后计算高度,获取id元素所处的位置
  3. 效果如下:


部分代码如下:

$(function () {$('#directory li').click(function () {$('html,body').animate({//90代表页面导航条占据的高度,具体根据需求来改变scrollTop: ($($(this).children().attr('data-cata-target')).offset().top) - 90}, 1000);return false;});
})
  1. 导航跟随页面滚动并定位到相应位置导航高亮显示,我们需要先计算出导航条的条数,用length来计算
var num = $('#directory li').length;
  1. 然后计算出各个定位位置距离窗口的高度,最后就是让其对应的导航名高亮显示。代码如下:
$(window).scroll(function () {for (i = 0; i < num; i++) {//120是根据具体要求来算的,可改变,这里获取得到各个定位位置距离窗口的高度if ($(document).scrollTop() + 120 >= $('#head' + i).offset().top) {//然后设置高亮$('#directory li .cata').removeClass('cata-on')$('#directory li .cata').eq(i).addClass('cata-on');}}return false;
})

最后完成。

jq锚点定位平滑跳转和导航跟随页面滚动并定位到相应位置,导航高亮显示相关推荐

  1. JQuery下锚点的平滑跳转

    对于锚点的平滑跳转,在一般的商业性质的网站上,权衡来说,要谨慎使用. 例如:让页面平滑滚动到一个id为box的元素处,则JQuery代码只要一句话,如下: $("html,body" ...

  2. 一个渣渣的随页面滚动改变定位的代码

    $(document).ready(function(){var footer = $('.footer');$(window).scroll(function () {var winH = $(wi ...

  3. html 页面怎么自动定位到某个标签,JS如何实现在页面上快速定位(锚点跳转问题)...

    本文介绍了JS如何实现在页面上快速定位(锚点跳转问题),分享给大家,具体如下: 1. 锚点跳转简介 锚点其实就是可以让页面定位到某个位置上的点.在高度较高的页面中经常见到. 锚点跳转有两种形式: a标 ...

  4. 基于jquery的从一个页面跳转到另一个页面的指定位置的实现代码

    比如 想跳到 mao.aspx 的页面 的div id="s" 的位置 那么 只用<a href="mao.aspx#s"> 就可实现跳转到指定位置 ...

  5. 彻底解决IOS HTML页面上光标跳行、光标不跟随页面问题

    继:修复IOS上滑动HTML界面光标乱跳 声明:这里只是说明一种处理方法 继上一篇文章,处理IOS滑动时,光标不跟随页面滚动,处理方法是,监听touchmove事件,获取当focus的元素,使之失去光 ...

  6. Jquery实现页面滚动时导航智能定位

    页面滚动的时候,侧边辅助导航提示到对应的内容.尤其是对于内容很长的页面很好的一个体验. 借助jquery,可以轻松实现. <!-- 侧边导航 --> <div class=" ...

  7. 页面内锚点定位及其跳转

    一.前言 这篇文章我们来看一个网页中常用的小功能--锚点定位及其跳转.简单理解,这个功能就是点击"目录"中相应的"标题",对应"滚动跳转"到 ...

  8. html 页面内锚点定位及跳转方法总结

    第一种方法,也是最简单的方法是锚点用<a>标签,在href属性中写入DIV的id.如下: <!DOCTYPE html> <html> <head> & ...

  9. html锚点定位原理,html 页面内锚点定位及跳转方法总结

    第一种方法,也是最简单的方法是锚点用标签,在href属性中写入DIV的id.如下: to div1 to div2 to div3 div1 div2 div3 这种方法的缺点是点击锚点之后,浏览器的 ...

最新文章

  1. 漫画:百度从Google学来的面试题,想进大厂必备!
  2. 使用awk获得java进程号,获取进程号并赋值判断进程状态
  3. Beyond Compare比较Word文件的方法
  4. JavaScript 页面跳转的几种方式
  5. 【论文解读】突破置换模块计算瓶颈,MSRA开源轻量版HRNet,超越主流轻量化网络!|CVPR2021...
  6. MySQL 高级 - 索引 - 概述
  7. html展示pdf文件流,使用pdfjs提供的viewer.html展示pdf文件流
  8. linux 在家工作_我如何调整在家工作的习惯
  9. androidStudio导入库文件
  10. 机器学习笔记-XGBoost
  11. 【渝粤教育】广东开放大学 移动软件测试 形成性考核 (50)
  12. 《计算机组成原理实验》演示与仿真课件的设计与制作
  13. 基于大数据的个性化推荐系统
  14. 很好的万年历代码。随时可运行
  15. mysql错误码2002_MySQL错误ERROR 2002 (HY000): Can't connect to local MySQL server through socket
  16. python怎么另存为_python如何IE另存为附件
  17. StringBuffer的使用
  18. for循环结构(语句)的基本用法
  19. java毕业设计苹果酒店住房管理源码+lw文档+mybatis+系统+mysql数据库+调试
  20. 为什么选择Opera而不是火狐

热门文章

  1. 我的javaweb学习笔记(血泪史之七…
  2. 7-20打印九九口诀表
  3. 第4章-24 打印九九口诀表 (15 分)
  4. linux命令行SOX播放MP3
  5. (转载)豆瓣的新机遇
  6. 机械动作时序图怎么画_快速学习时序图:时序图简介、画法及实例
  7. ubuntu20.04抢鲜测试(包括FLASH安装)
  8. 甲骨文宣布向奥巴马的全民编程项目捐献 2 亿美元
  9. Linux whereis命令
  10. 双击电脑本地磁盘打不开