【问题标题】:Animate scrolltop not working in chrome but works in firefoxAnimate scrolltop 在 chrome 中不起作用,但在 Firefox 中起作用
【发布时间】:2017-05-22 02:33:07
【问题描述】:

以下代码在 Firefox 中有效,但在 chrome 中无效。这让我很难过。

$('html, body').animate({scrollTop: $('.panel-group').offset().top}, 800, 'swing');

我做了一些研究,代码看起来不错。 我还尝试了this post 中提供的答案,但没有一个对我有帮助。

可能值得注意的是,此代码连接到以下代码:

function getParameterByName(name, url) {
                    if (!url) url = window.location.href;
                    name = name.replace(/[\[\]]/g, "\\$&");
                    var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
                        results = regex.exec(url);
                    if (!results) return null;
                    if (!results[2]) return '';
                    return decodeURIComponent(results[2].replace(/\+/g, " "));
                }

                var loadcommentform = getParameterByName('loadcommentform');

                if (loadcommentform === 'true') {
                    $('.horizontalTabs, .tab-pane').removeClass('active');
                    $('.activateComments').parent().addClass('active');
                    $('#commentsTabArea').addClass('active');
                    $('.accordion-toggle').addClass('collapsed');
                    $('.activateComments').removeClass('collapsed');
                    $('.panel-collapse').removeClass('in');
                    $('#collapse-commentsTabArea').addClass('in');
                    $('html, body').animate({scrollTop: $('.panel-group').offset().top}, 800, 'swing');
                }

它会检测 url get 参数是否存在。 当我将alert(loadcommentform); 放在 if 语句中时,我会收到警报,因此我知道代码正在运行。我在浏览器开发工具控制台中没有收到任何 javascript 错误。

感谢您的帮助:)

【问题讨论】:

    标签: javascript jquery css google-chrome firefox


    【解决方案1】:

    Omg 好的,所以我想通了。

    因为我使用的是响应式标签 jquery 插件,所以我定位到了错误的元素。 Firefox 窗口小于 991 像素,因此似乎可以正常工作,Chrome 窗口大于 991,因此似乎无法正常工作。

    这就是我修复它的方法。

    var getCommentFormDocWidth = $(document).width();
    if (getCommentFormDocWidth < 991) {
        var sPos = $('.panel-group').offset().top;
    }
    else {
        var sPos = $('.tab-content').offset().top;
    }
    $('html, body').animate({scrollTop: sPos}, 800, 'swing');
    

    我希望这对其他人有帮助:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-24
      • 2013-10-17
      • 2021-12-27
      • 2015-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多