レイアウト用にMasonryを使用しています。ブラウザのウィンドウがサイズ変更されると、Masonryがレイアウトをやり直す前にいくつかの計算を実行したいと思います。Masonryがサイズ変更する前にコードを実行する方法
これまで、jquery.masonry.jsファイルを変更してオプションにコールバック関数を追加することで、これを実行できました。しかし、私は石工のコードを変更することなくそれを行うことを好むでしょう。
$container.masonry({
itemSelector : '.grid-element'
, preResizeCallback : doPreResize
, isResizable : true
});
、その後doPreResize
で、それは私が行う必要があるものは何でも:追加
オプションは、(石工INIT)は次のようです。 .jsファイルでの変更は、(バージョンv2.0.110927でライン293に近い)resize
機能である:
resize : function() {
//added callback to be called before doing resizing-related code
if (this.options.preResizeCallback)
{
this.options.preResizeCallback(this.element);
}
//rest of code
私が何をしたいのですがどのようなfalse
に設定isResizable
オプションで、石積みを初期化することで、その後、スマートなサイズ変更イベントを維持しながら、半手動でサイズ変更をトリガーします。
「smart resize」イベントを設定して、resizeLayout
などの関数を呼び出すことはできますか?私が欠けている何
function resizeLayout(event) {
//do precalculations
//tell masonry to reorganize layout
$container.masonry();
}
はisResizable
がtrue
のセットアップ方法、それは常にトリガされるのではなく、石積みのと同じように行われるようにサイズ変更イベントをにあるんときです。
私が避けたいイベントトリガーをサイズ変更してください。 ( 'smartresize.masonry'は、ブラウザのサイズを変更せずに数ミリ秒が経過した場合にのみトリガされます)。 – frozenkoi