【问题标题】:In Chrome, page won't scroll up (jQuery)?在 Chrome 中,页面不会向上滚动(jQuery)?
【发布时间】:2011-07-03 21:36:11
【问题描述】:

在页面底部,点击“将您的简历发送给我们”应该会滚动到浏览器到页面顶部。适用于 IE、FireFox,但在 Chrome 中它拒绝向上滚动。

代码:

    /*
     * Scroll to "Show Form", and Focus on first field in form
     */
    $('#goto-show-form').click(function() {
        $('html, body').animate({scrollTop: $("#show-form").offset().top}, '1000', 'swing', function() {
            $('#first-field').focus();
        });
        return false;
    });

有什么想法吗?

谢谢

编辑:我在此处隐藏了我发布的 URL,因为我不希望它被 Google 索引。这是我为客户制作的网站,当他们搜索他们的 URL 时,我更喜欢它没有显示任何关于制作他们网站的开发谈话。

但是要查看最初的错误,请查看:http://jsfiddle.net/rgPpE/12/ 正如您在 Chrome 中看到的那样,当您单击底部的链接时,它不会滚动。但是,如果您在 <a></a> 标记之间添加一些内容,例如  ,它现在会滚动到那里。

【问题讨论】:

    标签: jquery google-chrome scroll


    【解决方案1】:

    我现在无法测试这个,所以如果这不是正确的答案,我会删除,但是尝试滚动到一个非空元素,比如#send-resume。 p>

    $('#goto-show-form').click(function() {
    
          // --non empty target for the scroll---v
        $('html, body').animate({scrollTop: $("#send-resume").offset().top}, '1000', 'swing', function() {
            $('#first-field').focus();
        });
        return false;
    });
    

    也许版本 12 中存在错误。


    编辑:已验证。定位非空元素可以解决问题。

    【讨论】:

    • @codemonkey613:我自己刚刚完成了测试。很高兴它奏效了。 :o)
    • 最初,我使用 作为跳转链接,然后想 - 嗯,可能会喜欢 jQuery 滚动。所以后来我最终使用了 jQuery 的 id。但回过头来看,我现在发现继续使用它作为 id 毫无意义。
    【解决方案2】:

    在您的滚动动画功能中,我看到您将持续时间作为字符串提供。尝试将其提供为整数:

    $('#goto-show-form').click(function() {
        $('html, body').animate({scrollTop: $("#show-form").offset().top}, 1000, 'swing', function() {
            $('#first-field').focus();
        });
        return false;
    });
    

    【讨论】:

    • 很好理解,但它实际上不会阻止动画工作。它总是被设置为默认值。 Here's the source for that.
    • 谢谢。一年前,当我第一次接触 jQuery 时,我编写了这段代码。直到现在我才注意到这一点:)
    猜你喜欢
    • 1970-01-01
    • 2018-03-20
    • 1970-01-01
    • 1970-01-01
    • 2017-12-29
    • 1970-01-01
    • 2013-08-23
    • 2016-03-03
    • 2016-09-11
    相关资源
    最近更新 更多