0

ユーザーがページ上でそれを超えてスクロールすると、サブメニューを所定の位置に修正するjQueryをいくつか作成しました。jQuery は、サブメニューのクラスを変更して修正します。1 つのシナリオを除いて、これはすべて正常に機能します。それは、Firefox でページを更新した場合です。他のブラウザーではこの問題は発生しません。

$(function(){
    var menu = $('#submenu_wrapper'),
        pos = menu.offset();
        $(window).scroll(function(){
            if($(this).scrollTop() >= pos.top-57 && menu.hasClass('')){
                menu.addClass('fixed');
                $('.content_push').css({"height":"109px"});
            } else if($(this).scrollTop() <= pos.top-57 && menu.hasClass('fixed')){
                menu.removeClass('fixed');
                $('.content_push').css({"height":"57px"});
            }
        });
});

ページが更新された場合に Firefox が変更されたクラス状態を保持するように、私ができる変更はありますか? 同様の固定メニュー動作がこれを行うのを見たことがありますが、その方法がわかりません。たとえば、Twitter Bootstrap サイトの Javascript セクションに移動すると、これとまったく同じことが行われます。

乾杯。

4

3 に答える 3

1

いいえ、リロード後、スクリプトによって行われた変更は失われます。

于 2012-05-25T14:06:56.380 に答える
0

ThiefMasterが正しいと思います。他のブラウザーの動作が異なることに驚きました。

回避策として、サブメニューを表示するときに (# を使用して) URL フラグメントを追加し、ページの読み込み時にそのフラグメントを確認し、存在する場合は、サブメニューを表示するスクリプトを実行します。

于 2012-05-25T14:10:40.420 に答える
0

頭に浮かぶ唯一のことは、Cookie に値を格納し、更新時にこの Cookie の値に基づいて、適切なクラスを要素に適用することです。

于 2012-05-25T14:10:55.460 に答える