2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > jq锚点定位平滑跳转和导航跟随页面滚动并定位到相应位置 导航高亮显示

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

时间:2020-05-22 03:12:39

相关推荐

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

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

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

部分代码如下:

$(function () {$('#directory li').click(function () {$('html,body').animate({//90代表页面导航条占据的高度,具体根据需求来改变scrollTop: ($($(this).children().attr('data-cata-target')).offset().top) - 90}, 1000);return false;});})

导航跟随页面滚动并定位到相应位置导航高亮显示,我们需要先计算出导航条的条数,用length来计算

var num = $('#directory li').length;

然后计算出各个定位位置距离窗口的高度,最后就是让其对应的导航名高亮显示。代码如下:

$(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;})

最后完成。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。