Javascript 滚动到带偏移量的div ID
我目前正在Wordpress上运行一个测试站点。 我的页面上有几个div,这些div都有id,顶部有一个菜单,上面有指向这些id的锚。 我的标题是粘性的,因此当我单击锚定时,它会导航到div ID,但div的开头会隐藏在标题下面。我希望这样,当我单击一个锚点时,它会导航到div,但上面只有几个像素。 尽管有点小问题,我还是设法做到了Javascript 滚动到带偏移量的div ID,javascript,jquery,wordpress,jquery-animate,scrolltop,Javascript,Jquery,Wordpress,Jquery Animate,Scrolltop,我目前正在Wordpress上运行一个测试站点。 我的页面上有几个div,这些div都有id,顶部有一个菜单,上面有指向这些id的锚。 我的标题是粘性的,因此当我单击锚定时,它会导航到div ID,但div的开头会隐藏在标题下面。我希望这样,当我单击一个锚点时,它会导航到div,但上面只有几个像素。 尽管有点小问题,我还是设法做到了 (function($,document){ $("a[href^='#']").click(function(){ var url = $(this)
(function($,document){
$("a[href^='#']").click(function(){
var url = $(this).attr('href');
$('html,body').animate({scrollTop: $(url).offset().top - 90}, 2000);
});
})(jQuery);
发生的情况是:
我刚刚发现我的主题已经安装了jQuery“一页导航”插件,它正在干扰。仍在试图理解它是如何工作的,如果我能修改它使其具有偏移量,我也遇到了同样的问题,在我的例子中,我通过添加相同值的padding top和负margin top解决了这个问题:
。一些类{
垫顶:4em;
边缘顶部:-4em;
}
通过这样做,我的元素看起来像在完全相同的位置上,但浏览器在滚动时会更快地找到它。您可以将这些值设置为粘性标题的高度,也可以四处游荡,以确保标题正好位于您想要的位置
我希望我是用一种可以理解的方式来解释这个。。。在我看来,这确实是有道理的:D我的猜测是,您在站点中的某个地方有一个jQuery平滑滚动到锚定代码,该代码将自身绑定到所有a节点。首先执行这里的自定义代码,然后该代码将启动并精确滚动到锚。也许只是grep的
scrollpop
?我也是这么想的。我做了一次搜索,发现了一个名为/*使所有锚链接平滑滚动的部分。我禁用了它,但它仍然不起作用。您是否确保您的浏览器没有加载相关脚本的缓存副本(或者仍然收到带有旧内容的缩小/合并版本)?至少听起来很有希望。还有,你看过插件目录了吗?可能有两个片段在做同样的事情。