2017-05-22 29 views
1

次のコードはFirefoxで動作しますが、Chromeでは動作しません。それは私に困ってしまった。アニメスクロールトップはクロムでは機能しませんが、Firefoxでは動作します

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

私はいくつかの調査を行い、コードはうまく見えます。 私は答えはthis postで提供してみましたが、何も助けてくれませんでした。

それは、このコードはfolowingコードに接続されていることは注目に値するかもしれません:URLはのparamaterが存在する得ればそれは検出さ

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'); 
       } 

alert(loadcommentform);をifステートメントの内側に置くと、警告が表示され、コードが実行されていることがわかります。私はブラウザのdevツールコンソールにjavascriptエラーを表示しません。助けのための

感謝:)

答えて

1

すっごいOKので、私はそれを考え出しました。

私はレスポンシブなタブのjqueryプラグインを使用しているため、間違った要素をターゲットにしていました。 Firefoxのウィンドウが991px未満だったので、動作していたようですが、クロムウィンドウが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'); 

私は、これは他の誰かに役立ちます願っています:)

関連する問題