5

私の問題を説明するのは少し難しいですが、画像を使用してみます。

デモ: http://jsfiddle.net/H8Qbn/13/

Isotope を使用して jQuery ダイアログを自動的に配置しようとしています。

  • 最初の写真は、すべてが正常に機能していることを示しています。

ここに画像の説明を入力

  • 2 番目の図は、最初の jQuery ダイアログのサイズを変更しようとしたときに何が起こっているかを示しています。サイズは問題なく変更され、他のすべてのダイアログは自動的に配置されます。

ここに画像の説明を入力

  • 2 番目のダイアログを配置しようとすると、最初にその位置 (上、左) に従って移動し、次にサイズが変更され、他のすべてのダイアログは自動的に配置されません。

ここに画像の説明を入力

  • 3 番目のダイアログは 2 とまったく同じように動作します。位置 (上、左) に従って移動し、自動的に配置されません。

ここに画像の説明を入力

助言がありますか?

4

2 に答える 2

3

Isotope は、ドラッグ可能なダイアログ ボックス用には作成されていません。このタイプの機能に関して、プラグインの作成者が何と言っているかを参照してください。

編集 さらにいくつかのことをいじって、ダイアログが .remove(); で閉じられたときにレイアウトを再配置しました。ただし、ドラッグはサポートされておらず (上記参照)、手動でのサイズ変更も機能しません。ダイアログ ボックスのサイズを手動で変更する必要があるのはなぜですか? プログラムでそれを行うことはできませんか?

于 2012-07-11T16:11:42.740 に答える
2

jquery masonry プラグインは、ダイアログ ボックスのサイズを変更したり、項目を追加または削除したりした後に、周囲のコンテナーで masonry("reload") 関数を使用して呼び出すと、新しい位置を計算できます。周囲のコンテナに画像を追加または削除するときに、Javascript で使用しました。Masonry プラグインは、私のホームページの Web アドレスhttp://www.chihoang.deで実際に動作しているのを見ることができます。

これは、最後に masonry("reload") を使用した私のプリペンドおよびアペンド関数です。

         if (ele.Additem == "Append") {
          container.append($j("#brickTemplate").tmpl(ele).css({
            "display": "block"
          })).masonry('reload');
         } else if (ele.Additem == "Prepend") {
          container.prepend($j("#brickTemplate").tmpl(ele).css({
            "display": "block"
          })).masonry('reload');
        }

そして、これは私の削除機能です:

        $j('.brick').remove(":contains('" + ele.Headline + "')");
        container.masonry('reload');
于 2012-07-20T00:19:49.900 に答える