Я использую масонство для макета.Когда размер окна браузера изменится, я хотел бы выполнить некоторые вычисления, прежде чем Мейсонри переделает макет.
До сих пор я мог сделать это, изменив файл jquery.masonry.js и добавив функцию обратного вызова вварианты.Но я бы предпочел сделать это без изменения масонского кода.
Добавлена следующая опция (масонская инициализация):
$container.masonry({
itemSelector : '.grid-element'
, preResizeCallback : doPreResize
, isResizable : true
});
, а затем в doPreResize
сделать что угодноМне нужно сделать.Изменение в файле .js заключается в функции resize
(рядом со строкой 293 в версии v2.0.110927):
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
.