繁体   English   中英

链接到HTML文档中的href时如何使用javascript偏移量?

[英]How can I use a javascript offset when linking to href's in HTML document?

我正在建立一个带有固定位置菜单栏的网站,该菜单栏在页面顶部高35像素。 在该菜单中,我有四个项目链接到页面的各个部分。 当我单击链接时,页面跳至该部分,但35 px菜单栏覆盖了文本的顶部。

如何修改此站点,以便当我跳到某个部分时不会将我链接到HTML文档的确切部分,而是将其高35像素,以考虑静态菜单栏?

我这样做是用href代码:

<a href="#links"><li>Links</li></a>
<h1><a name="links">Links</a></h1>

谢谢!

编辑:菜单栏代码

<div id="top-floating-bar"> <!-- Menubar -->
<div class="row">
  <div class="column grid_12">
    <div class="fixed-bar-buttons">
      <ul>
        <a href="#top"><li>Home</li></a>
        <a href="#links"><li>Links</li></a>            
        <a href="#resume"><li>Resume</li></a>
        <a href="#social"><li>Social</li></a>
      </ul>
    </div>
  </div>
</div>
</div> <!-- End the Menubar -->

描述

您可以使用jQuery .offset().scrollTop()函数

与tguidon讨论后更新

我不知道您的top-floating-bar CSS的定义,但我知道您想要什么。 小提琴中菜单栏的大小不正确,因为我不知道您的定义。

查看jSFiddle

样品

HTML

<head>
    <script src="jquery-1.5.1.min.js" type="text/javascript"></script>
    <script type="text/javascript"><
          $(function() {
            $(".goto").click(function() {
              var target = $(this).attr("href")
              target = target.substring(1,target.length);
              $(window).scrollTop($('a[name="'+target+'"]').offset().top - 35); 
              return false; 
            });
        });
    </script> 
</head>

<div id="top-floating-bar"> <!-- Menubar -->
<div class="row">
  <div class="column grid_12">
    <div class="fixed-bar-buttons">
      <ul>
        <a href="#top" class="goto"><li>Home</li></a>
        <a href="#links" class="goto"><li>Links</li></a>  
        <a href="#resume" class="goto"><li>Resume</li></a>
        <a href="#social" class="goto"><li>Social</li></a>
      </ul>
    </div>
  </div>
</div>
</div> <!-- End the Menubar -->

<br><br><br><br><br>
<a name="top"/> Top Section
<br><br><br><br><br><br><br><br>

<a name="links"/> Links Section
<br><br><br><br><br><br><br><br>

<a name="resume"/> Resume Section
<br><br><br><br><br><br><br><br>

<a name="social"/> Social Section
<br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br>

更多信息

假设您的菜单栏有一个class menubar ,您可以尝试如下操作:

$('.menubar a').click(function() {

  var y = $('a[name="'+$(this).attr('href').replace('#', '')+'"]').offset().top - 35;
  $(window).scrollTop(y);

  return false;

});

如果您想花哨的话,可以使用此http://demos.flesler.com/jquery/scrollTo/。它内置了“偏移”选项。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM