【问题标题】:Jquery scrollTop goes to the wrong positionJquery scrollTop 到了错误的位置
【发布时间】:2016-01-25 16:17:52
【问题描述】:

在带有滚动条的 div 中,当我按下 CLICK ME 按钮时,下面的脚本应该滚动到文本“应该去这里”。类似于锚链接的东西。

JsFiddlehttps://jsfiddle.net/hhqnjojr/2/

相反,脚本滚动到文本“应该去这里”上方的随机位置 (?)。请问,我做错了什么?

$("#my_button").click(function() {
    $('#wrapper_div').animate({
        scrollTop: $("#go_here").offset().top
    }, 2000);
}); 

【问题讨论】:

  • 这里有些不对劲。 offset() 返回元素的位置相对于文档,但您将scrollTop() 应用于<div> 元素而不是window。坐标系彼此不一致。
  • 欢迎任何想法......我可以使用其他任何东西来代替 offset() 吗?
  • position()也许,取决于#go_here的偏移父级。

标签: javascript jquery


【解决方案1】:

position: relative 在#wrapper_div 上似乎有效。当然,如果您已经在底部,它不会滚动到任何地方。并使用 position() 而不是 offset() 我相信。

【讨论】:

  • 你成就了我的一天(在 MS Word 中将应用程序添加到插件扩展中,并且这些东西在 IE11 上运行,因此许多默认方法不起作用或适用于有趣的行为)
【解决方案2】:

$window.scrollTo(0, 0);

在你的点击事件中写这个,它会移到顶部,根据你的要求给出位置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多