【问题标题】:ScrollTop on page load issue页面加载问题上的 ScrollTop
【发布时间】:2013-11-07 00:43:57
【问题描述】:

我有一个关于我在网站中添加的 scrollTop 功能的问题,该功能可在页面加载时向下滚动到名为“test”的某个部门。我使用 scrollTop 功能,它工作了一会儿,但随后它滚动回到网站的顶部。我已经尝试添加 preventdefault 并返回 false,但两种解决方案均无效。这是我的代码:

$(document).ready(function () {
    $(function () {
        $(document).scrollTop($("#test").offset().top);

    });
    //some other code
}); 

【问题讨论】:

  • 你能发布一个演示该行为的 jsfiddlet 吗?

标签: jquery scrolltop


【解决方案1】:

您的文档中似乎已准备好文档。我可以将您的代码调整得更强大一些,但它可能无法解决问题。听起来您可能有一个冲突的脚本将其移到顶部,但请尝试将您当前的代码更改为:

$(document).ready( function() {
    $('html, body').scrollTop($("#test").offset().top);
});

【讨论】:

  • 我尝试了这两个建议并删除了我拥有的其他 jquery 代码。但仍然是同样的问题。
  • 您可以发布问题的示例吗?还是网站链接?
  • 如果我在 jsfiddle 中创建这种情况,它可以正常工作。我无法显示该网站,因为我正在本地服务器上开发。
  • 发现脚本在 Firefox 中运行良好。但不是铬。虽然没有找到解决方案。任何人都知道这个问题与 chrome 有什么关系。
  • 如果无法复制或查看任何代码,我们将无法调试您的问题。这可能是一百万件事。也许你应该把副本放到网上。
【解决方案2】:

这是正确的代码:

$(document).ready(function () {
    // Handler for .ready() called.
    $('html, body').animate({
        scrollTop: $('#test').offset().top
    }, 'slow');
});

演示:Fiddle


  • 现在,您的代码中嵌套了 $( document ).ready( handler ),从而导致了问题。
  • 其实$( document ).ready(function() {..}相当于调用$(function() {..}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-18
    • 1970-01-01
    • 2020-08-25
    相关资源
    最近更新 更多