22

jQuery ui (jquery-ui-1.10.3) ダイアログ プラグインを弊社製品の 1 つに使用したところ、考えられる「問題」が見つかりました。ホスティング ページが小さいか、ホスティング ページの現在のビューが一番上までスクロールされている場合、開いているダイアログ ボックスをドラッグすると、期待どおりに動作します。この問題は、上部以外の場所にスクロールされる大きなページでダイアログをホストするときに明らかになり始めます。この場合、ドラッグ中にダイアログ ボックスがジャンプし始めます。IE 9 と最新の Firefox (21.0) の両方で発生します。

ページは動的に生成され、複雑で、長くする必要があります。私はフィドルに精通していませんが、使用できるjQuery-ui libオプションのオプションがないようです。

より具体的には、ホスティング ページを 100 ピクセル下にスクロールすると (ホスティング ページの上部 100 ピクセルがブラウザー ウィンドウの上部境界線に「フィード」される)、ダイアログをドラッグすると、マウスに追従するのではなく、 100px ジャンプして、マウス キャプチャの外に出ます。

ダイアログは次のように初期化されます

$(要素).dialog({
    autoOpen: false、幅: 950、高さ: 820、
    モーダル: false、サイズ変更可能: true、ドラッグ可能: true
});

私の質問は次のとおりです。1) 他の誰かが同じ問題を抱えていますか? 2) もしそうなら、これは設定の問題ですか、それともバグですか。

ここの専門家は私を助けることができますか?

4

6 に答える 6

35

以前は同じ問題がありました。ページのコンテンツは自動的に生成されます。とても長いです。

html, body {position: relative}問題を解決します。

于 2013-11-01T15:29:06.880 に答える
6

このバグを修正するための私の解決策は、Dado の解決策と似ていますが、ドラッグ イベントを使用します。

        $(element).dialog({
            draggable: true,
            drag: function(event, ui) {
                var fixPix = $(document).scrollTop();
                iObj = ui.position;
                iObj.top = iObj.top - fixPix;
                $(this).closest(".ui-dialog").css("top", iObj.top + "px");
            }
        });

私のバージョン: jQuery UI - v1.10.3 - 2013-10-10

于 2014-10-08T17:23:24.730 に答える
2

バグがあると思います。私もこの問題に直面しました。これを修正してドラッグをオフにするための私の解決策。ドラッグ可能を false にするだけです。このような:

$(element).dialog({ 
    autoOpen: false, width: 950, height: 820, 
    modal: false, resizable: true, draggable: false
});
于 2013-09-19T04:19:06.323 に答える
1

jQuery UI ライブラリ (js) を更新すると、うまくいきました。 http://jqueryui.com/download/
css ファイルも忘れずに更新してください。

于 2014-08-08T20:09:51.610 に答える