我正在使用砌體進行佈局。當瀏覽器的窗口調整大小時,我想在砌體重新佈局之前執行一些計算。如何在砌體調整前執行代碼
到目前爲止,我已經能夠通過修改jquery.masonry.js文件並向選項添加回調函數來完成此操作。但我寧願不修改砌體代碼就這樣做。
添加的選項如下(磚石INIT):
$container.masonry({
itemSelector : '.grid-element'
, preResizeCallback : doPreResize
, isResizable : true
});
,然後在doPreResize
做任何事情是我需要做的。在.js文件的修改是在resize
功能(在版本v2.0.110927近線293):
resize : function() {
//added callback to be called before doing resizing-related code
if (this.options.preResizeCallback)
{
this.options.preResizeCallback(this.element);
}
//rest of code
我希望做的是與isResizable
選項設置爲false
,然後初始化砌體手動調整半尺寸,同時保持智能尺寸調整事件。
是否可以設置「智能調整大小」事件來調用功能,如resizeLayout
?
function resizeLayout(event) {
//do precalculations
//tell masonry to reorganize layout
$container.masonry();
}
我缺少的是如何設置的調整大小事件,使得它不會經常觸發,而是要做同樣的方式砌體沒有當isResizable
是true
。
我認爲這樣做的問題是(1)它不僅重新排列塊,而且通過調用設置函數從頭開始設置砌體(2)每次完成調整事件觸發器的大小,這是我想避免的。 (如果在不調整瀏覽器大小的情況下經過幾毫秒,'smartresize.masonry'只會觸發。 – frozenkoi 2014-02-01 07:49:01