jQuery单页滚动以及指向其他页面的链接

山姆·斯基罗

我有一个网站,它的大部分内容都在一个页面样式中,带有菜单链接,这些菜单链接使用div ID作为锚点向下滚动页面(例如www.mydomain.com/#div-id),但是,还有一些额外的功能标头中还链接的外部页面。

我遇到的问题是,当我进入一个外部页面(例如,www.mydomain.com / page-1)时,用于向下滚动主页的菜单链接不起作用(它们列为www.mydomain.com/page-1/#div-id)。

jQuery(document).ready(function($){
jQuery('a[href*=#]').click(function (e){
e.preventDefault();
var navHeight = jQuery('.header-site').height();
var id = jQuery(this).attr('rel');
var scrollTo = jQuery('#' + id).offset().top-navHeight;

jQuery('html,body').animate({
    'scrollTop': scrollTo
}, 500);
});

});

我使用link rel属性添加div ID,以免与其他jQuery插件(例如标签)发生冲突。

有没有一种方法可以解决我的问题,所以我可以让菜单项滚动到页面上,而当我不在主页上时,“可滚动”菜单项链接回到首页(以及相关页面)部分)。

因为它们都在主页上,所以将您的href更改为以/:-开头

<a href="/#test">test</a>

这将停止此问题-www.mydomain.com/page-1/#div-id

然后将您的函数分开,以便可以在页面加载和单击时调用它,并且仅preventDefault当您在主页上时才可以调用它,否则让它使用哈希将您重定向到主页。

因为现在所有的href都是/#我正在使用的jQuery('a[href^="/#"]')

function scrollToSection(id) {

  var navHeight = jQuery('.header-site').height();
  var scrollTo = jQuery('#' + id).offset().top - navHeight;

  jQuery('html,body').animate({
    'scrollTop': scrollTo
  }, 500);
}

jQuery(document).ready(function($) {

  var isHomepage = window.location.pathname == '/';

  if (isHomepage && window.location.hash) {
    var id = window.location.hash.split('#')[1];
    scrollToSection(id);
  }

  jQuery('a[href^="/#"]').click(function(e) {

    if (isHomepage) {
      e.preventDefault();
      var id = $(this).attr('href').split('#')[1];
      scrollToSection(id);
    }

  });

});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

jQuery单页滚动以及指向其他页面的链接

来自分类Dev

python Wikipedia抓取-使用其他语言获取指向同一页面的链接?

来自分类Dev

如何创建指向其他页面的will_paginate链接?

来自分类Dev

指向其他页面的div

来自分类Dev

如何使用jQuery单页滚动插件滚动大页面?

来自分类Dev

Wikipedia iwlinks表仅存储一些指向Wikidata页面的链接。其他人呢

来自分类Dev

使页面上的所有链接/参考指向其他位置

来自分类Dev

jQuery:将onClick绑定到所有指向其他具有target = _self的页面的锚点

来自分类Dev

jQuery平滑滚动以偏移量链接到其他页面

来自分类Dev

用于链接/导航到其他JSF页面的URL

来自分类Dev

保存链接分配值以及转到其他页面

来自分类Dev

图片作为预览以及链接到其他页面

来自分类Dev

保存链接分配值以及转到其他页面

来自分类Dev

HTML将SVG显示为指向另一页面的链接

来自分类Dev

CSS-其他页面的打印单中的html页面

来自分类Dev

修复了在单页应用程序中导航到其他页面时显示的标题

来自分类Dev

修复了在单页应用程序中导航到其他页面时显示的标题

来自分类Dev

具有自定义帖子类型的WordPress分页。指向其他页面的网址?

来自分类Dev

使用jquery / js在其他页面的输入字段中传递实际页面的URL

来自分类Dev

jQuery单页滚动不起作用

来自分类Dev

尝试将其他页面的锚链接添加到我的mvc链接

来自分类Dev

如何禁用其他页面的母版页的HTML锚标记?

来自分类Dev

如果页面是通过其他页面的链接加载的,则Rails表单不会提交

来自分类Dev

如果该行存在于下一页或其他某些页面的JQuery数据表中,则如何删除该行

来自分类Dev

如何在下拉数据切换上提供可点击的链接(指向其他页面)?

来自分类Dev

使用 Foundation 滚动单页时激活顶部导航链接

来自分类Dev

链接到Angular 9中其他页面的特定内容

来自分类Dev

如何在reStructuredText中添加到其他页面的链接?

来自分类Dev

javascript-禁用来自其他html页面的html框架的超链接

Related 相关文章

  1. 1

    jQuery单页滚动以及指向其他页面的链接

  2. 2

    python Wikipedia抓取-使用其他语言获取指向同一页面的链接?

  3. 3

    如何创建指向其他页面的will_paginate链接?

  4. 4

    指向其他页面的div

  5. 5

    如何使用jQuery单页滚动插件滚动大页面?

  6. 6

    Wikipedia iwlinks表仅存储一些指向Wikidata页面的链接。其他人呢

  7. 7

    使页面上的所有链接/参考指向其他位置

  8. 8

    jQuery:将onClick绑定到所有指向其他具有target = _self的页面的锚点

  9. 9

    jQuery平滑滚动以偏移量链接到其他页面

  10. 10

    用于链接/导航到其他JSF页面的URL

  11. 11

    保存链接分配值以及转到其他页面

  12. 12

    图片作为预览以及链接到其他页面

  13. 13

    保存链接分配值以及转到其他页面

  14. 14

    HTML将SVG显示为指向另一页面的链接

  15. 15

    CSS-其他页面的打印单中的html页面

  16. 16

    修复了在单页应用程序中导航到其他页面时显示的标题

  17. 17

    修复了在单页应用程序中导航到其他页面时显示的标题

  18. 18

    具有自定义帖子类型的WordPress分页。指向其他页面的网址?

  19. 19

    使用jquery / js在其他页面的输入字段中传递实际页面的URL

  20. 20

    jQuery单页滚动不起作用

  21. 21

    尝试将其他页面的锚链接添加到我的mvc链接

  22. 22

    如何禁用其他页面的母版页的HTML锚标记?

  23. 23

    如果页面是通过其他页面的链接加载的,则Rails表单不会提交

  24. 24

    如果该行存在于下一页或其他某些页面的JQuery数据表中,则如何删除该行

  25. 25

    如何在下拉数据切换上提供可点击的链接(指向其他页面)?

  26. 26

    使用 Foundation 滚动单页时激活顶部导航链接

  27. 27

    链接到Angular 9中其他页面的特定内容

  28. 28

    如何在reStructuredText中添加到其他页面的链接?

  29. 29

    javascript-禁用来自其他html页面的html框架的超链接

热门标签

归档