0

このコードは Firefox では機能しますが、Chrome v.23 では機能しません。デバッガーでコードをトレースすると、すべて正常に動作しますが、Chrome は class を変更しません。何か案は?

$(document).scroll(function () {

    $('a.nav').each(function () {

        var divTop = $('#' + this.title).offset().top;
        var distance = divTop - $("html").scrollTop();
        if (distance > 210 && distance < 255) {

            $('a.active').removeClass('active');
            $(this).addClass('active');

        }
    });
});
4

1 に答える 1

0

問題は、スクロールトップの $("html") をターゲットにしています。

この SO スレッドを参照してください: jQuery scrollTop() が Safari または Chrome (Windows) で機能しないようです

シナリオで実際に何が起こっているかの詳細については、2 番目の回答を参照してください。つまり、 $('body') を使用してみてください。

ただし、最初の 2 つのソリューションのいずれかが機能するはずです。

于 2012-12-04T13:36:12.440 に答える