首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在jquery中的某一点停止滚动

问在jquery中的某一点停止滚动
EN

Stack Overflow用户
提问于 2015-11-25 16:38:56
回答 3查看 844关注 0票数 1

我需要创建平滑滚动到使用jQuery的ID的。

下面是我的代码:

代码语言:javascript
复制
  var $root = $('html, body');
  $('a[href*=#]').click(function() {
      var href = $.attr(this, 'href');
      $root.animate({
          scrollTop: $(href).offset().top
      }, 500, function () {
          window.location.hash = href;
      });
      return false;
  });

它对我来说工作得很好。但是有一件事,我需要在页面顶部的某一点停止滚动。例如,从顶部开始的200px。

在这个阶段,它总是滚动到页面的顶部。

有人能告诉我如何修改这段代码吗?谢谢。

EN

回答 3

Stack Overflow用户

发布于 2015-11-25 16:55:02

通过添加以下内容:

代码语言:javascript
复制
(($(href).offset().top >= 200 ) ? $(href).offset().top : 200)

它检查元素离顶部有多远,如果它超过200px,它会滚动到它,否则它会从顶部滚动到200px

下面是新的代码:

代码语言:javascript
复制
  var $root = $('html, body');
  $('a[href*=#]').click(function() {
      var href = $.attr(this, 'href');
      $root.animate({
          scrollTop: (($(href).offset().top >= 200 ) ? $(href).offset().top : 200)
      }, 500, function () {
          window.location.hash = href;
      });
      return false;
  });
票数 0
EN

Stack Overflow用户

发布于 2015-11-25 16:55:10

如果我没理解错的话,你有像header这样的高度,例如200px和position:fixed到顶部。并且您当前的脚本滚动太高,隐藏了标题下的哈希标题。

因此,如果这是正确的,你只需要从$(href).offset().top中减去标题高度(例如scrollTop: $(href).offset().top-200)

jsFiddle

票数 0
EN

Stack Overflow用户

发布于 2015-11-25 17:05:53

将此行scrollTop: $(href).offset().top更改为scrollTop: $("body").offset().top + 200

这将占据真正的顶部位置(0),然后您可以操作您的滚动以获得所需的位置

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33911810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档