动画滚动顶部不工作在chrome但在Firefox中工作

时间:2017-05-22 02:33:08

标签: javascript jquery css google-chrome firefox

以下代码适用于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是否存在参数。 当我将alert(loadcommentform);置于if语句中时,我收到警报,因此我知道代码正在运行。我在浏览器开发工具控制台中没有出现javascript错误。

感谢您的帮助:)

1 个答案:

答案 0 :(得分:1)

好的,所以我明白了。

因为我使用了响应式标签jquery插件,所以我的目标是错误的元素。 Firefox窗口小于991px所以似乎工作,chrome窗口是> 991所以似乎没有工作。

这是我修复它的方式。

private final static int DELAY_MS = 500;
autoCompletionTextView.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            autoCompletionTextView.requestFocus();
            new Handler().postDelayed(() -> autoCompletionTextView.showDropDown(), DELAY_MS);
            return false;
        }
    });

我希望这有助于其他人:)