Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 滚动到带偏移量的div ID_Javascript_Jquery_Wordpress_Jquery Animate_Scrolltop - Fatal编程技术网

Javascript 滚动到带偏移量的div ID

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)

我目前正在Wordpress上运行一个测试站点。 我的页面上有几个div,这些div都有id,顶部有一个菜单,上面有指向这些id的锚。 我的标题是粘性的,因此当我单击锚定时,它会导航到div ID,但div的开头会隐藏在标题下面。我希望这样,当我单击一个锚点时,它会导航到div,但上面只有几个像素。 尽管有点小问题,我还是设法做到了

(function($,document){
  $("a[href^='#']").click(function(){
    var url = $(this).attr('href');
    $('html,body').animate({scrollTop: $(url).offset().top - 90}, 2000);
  });
})(jQuery);
发生的情况是:

  • 我用href=“#someid”单击一个锚点
  • 我的浏览器导航到偏移量为-90px的#someid(到目前为止它工作得很好)
  • 然后我的浏览器向下滚动90px,到div#someid从视口开始的位置(在粘性标题后面)
  • 最后,我的URL变为
  • 我只想删除第3步。非常感谢您的帮助

    更新:
    我刚刚发现我的主题已经安装了jQuery“一页导航”插件,它正在干扰。仍在试图理解它是如何工作的,如果我能修改它使其具有偏移量,我也遇到了同样的问题,在我的例子中,我通过添加相同值的padding top和负margin top解决了这个问题:

    。一些类{
    垫顶:4em;
    边缘顶部:-4em;
    }
    
    通过这样做,我的元素看起来像在完全相同的位置上,但浏览器在滚动时会更快地找到它。您可以将这些值设置为粘性标题的高度,也可以四处游荡,以确保标题正好位于您想要的位置


    我希望我是用一种可以理解的方式来解释这个。。。在我看来,这确实是有道理的:D

    我的猜测是,您在站点中的某个地方有一个jQuery平滑滚动到锚定代码,该代码将自身绑定到所有a节点。首先执行这里的自定义代码,然后该代码将启动并精确滚动到锚。也许只是grep的
    scrollpop
    ?我也是这么想的。我做了一次搜索,发现了一个名为/*使所有锚链接平滑滚动的部分。我禁用了它,但它仍然不起作用。您是否确保您的浏览器没有加载相关脚本的缓存副本(或者仍然收到带有旧内容的缩小/合并版本)?至少听起来很有希望。还有,你看过插件目录了吗?可能有两个片段在做同样的事情。