Javascript 转到另一页上的偏移锚定标记

Javascript 转到另一页上的偏移锚定标记,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有一个网站,当用户向下滚动页面时,标题会固定在某个位置,这是标准的东西 因此,当我点击一个链接进入页面下方的锚定标签时,我想跳转到的部分的开头在标题下面 为了解决这个问题,我遵循了这里的建议:当我跳转到同一页面上的链接时,这个建议非常有效 但是,如果我试图从不同的页面跳转到相同的锚标记,例如: <a href="http://www.example.com/different-page.html#anchor-name">link text</a> 页面不会滚动到#c

我有一个网站,当用户向下滚动页面时,标题会固定在某个位置,这是标准的东西

因此,当我点击一个链接进入页面下方的锚定标签时,我想跳转到的部分的开头在标题下面

为了解决这个问题,我遵循了这里的建议:当我跳转到同一页面上的链接时,这个建议非常有效

但是,如果我试图从不同的页面跳转到相同的锚标记,例如:

<a href="http://www.example.com/different-page.html#anchor-name">link text</a>

页面不会滚动到#comments元素。但是,如果我使用setTimeout并再等待3秒钟,页面就会很高兴地滚动到该元素。似乎需要额外的时间才能完全加载页面?

您可以在
文档上检查
url
。准备好
并尝试分离
部分,然后使用
javascript
jquery
滚动到该部分。我试图这样做-请参见编辑。否。。它需要一个不同的线程来运行部件。。您可以尝试在
setTimeout
中提供最短时间。。像
300毫秒
这样做很有效-非常感谢。但是你能帮我理解为什么在短300毫秒的延迟下它能工作,但是在没有设置超时的情况下却不能工作吗?如果你想创建一个答案,我可以将其标记为我接受的解决方案…卢克。。正如我在上一篇评论中所说的,据我所知,某些操作/事件最好在浏览器中的不同线程中运行,这样就不会等待其他线程完成任务。。由于我不确定如何正确解释这一点,我不会将其作为答案发布,因为访问此帖子的人可能不会从中习惯,如果答案是错误的:)但是基本上,
setTimeout
创建一个单独的线程并运行其中的代码行,这是肯定的:)无论如何。。快乐编码…)好吧,如果你愿意,你可以把它作为另一个问题发布,并从专家那里得到解释:)您可以在
文档上检查
url
。准备好
并尝试分离
#
部分,然后使用
javascript
jquery
滚动到该部分。我尝试过这样做-请参阅编辑。否。。它需要一个不同的线程来运行部件。。您可以尝试在
setTimeout
中提供最短时间。。像
300毫秒
这样做很有效-非常感谢。但是你能帮我理解为什么在短300毫秒的延迟下它能工作,但是在没有设置超时的情况下却不能工作吗?如果你想创建一个答案,我可以将其标记为我接受的解决方案…卢克。。正如我在上一篇评论中所说的,据我所知,某些操作/事件最好在浏览器中的不同线程中运行,这样就不会等待其他线程完成任务。。由于我不确定如何正确解释这一点,我不会将其作为答案发布,因为访问此帖子的人可能不会从中习惯,如果答案是错误的:)但是基本上,
setTimeout
创建一个单独的线程并运行其中的代码行,这是肯定的:)无论如何。。快乐编码…)好吧,如果你愿意,你可以把它作为另一个问题发布,并从专家那里得到解释:)
    if( $(".blogPost").length ) {
//        var anchorID = window.location.hash;
        //setTimeout(function() {
            $('html,body').animate({
                scrollTop: $("#comments").offset().top
            }, 'slow');
        //}, 3000);
    }