链接到不同的页面 – > jquery滚动到特定的锚点

在我的主页底部,我已经包含了一个联系表单,并将此部分的锚点指定为div id =“contact”。

当在任何页面上单击联系人按钮时,它应该导航到主页并在页面加载时,自动滚动到联系人表单。

在查看了我在这里找到的类似问题之后,我一直没有成功地开始工作: jQuery从不同页面滚动到ID当我尝试时,它只是跳转到表单。 我想让它顺利滚动。

  • Get in touchContact
  • 问题jquery函数从其他页面滚动到主页上的联系人锚点:

     (function($){ var jump=function(e) { if (e) { e.preventDefault(); var target = $(this).attr("href"); } else { var target = location.hash; } $('html,body').animate({ scrollTop: $(target).offset().top },1000,function() { location.hash = target; }); } $('html, body').hide() $(document).ready(function() { $('a[href^=#]').bind("click", jump); if (location.hash) { setTimeout(function(){ $('html, body').scrollTop(0).show() jump() }, 0); } else { $('html, body').show() } }); 

    我试图实现类似于这个例子的东西: http : //vostrel.cz/so/9652944/page.html不同之处在于,在这两种情况下出现的锚点ID(联系人) )对我来说只出现在一页(家)。

    试试这个,你的脚本没问题,只剩下最后一行

      (function ($) { var jump = function (e) { if (e) { e.preventDefault(); var target = $(this).attr("href"); } else { var target = location.hash; } $('html,body').animate({ scrollTop: $(target).offset().top }, 1000, function () { location.hash = target; }); } $('html, body').hide(); $(document).ready(function () { $('a[href^=#]').bind("click", jump); if (location.hash) { setTimeout(function () { $('html, body').scrollTop(0).show() jump(); }, 0); } else { $('html, body').show(); } }); })(jQuery) 

    我不确定你的代码是什么,但我已经能够让它运行起来。 有一件事是,你发布的代码,它最后缺少一个})(jQuery) 。 无论如何,看看我在这里做了什么,我想这就是你要找的东西。 我不确定你的网站的HTML是什么样的,但我认为你可以适应它。 您需要做的就是将联系人按钮的href属性设置为https://stackoverflow.com/questions/11820055/link-to-different-page-jquery-scroll-to-specific-anchor/index.html#contact 。 在https://stackoverflow.com/questions/11820055/link-to-different-page-jquery-scroll-to-specific-anchor/index.html上,你可以使用#contact ,它会做同样的事情。

    在https://stackoverflow.com/questions/11820055/link-to-different-page-jquery-scroll-to-specific-anchor/index.html中,标题:

      

    但在任何其他页面中:

      

    在https://stackoverflow.com/questions/11820055/link-to-different-page-jquery-scroll-to-specific-anchor/index.html的头文件中删除https://stackoverflow.com/questions/11820055/link-to-different-page-jquery-scroll-to-specific-anchor/index.html阻止页面加载两次,因此jQuery只是向下滚动页面。

    在测试你的代码时我遇到的一些提示:

    因为您正在使用锚标记的href属性,所以它以#contact的forms出现,jQuery将其解释为ID。

    您需要向锚点添加一个id =“contact”才能使其正常工作,无论它在哪个页面上。