0

私は自分のコードをどこに置いてサイズ変更と再配置ができるのかわかりません。私はどこにコールバックを挿入するために見つける必要があり、これが唯一のビットは、私が見てしなければならないとのコールバック関数がコールバック関数のための場所を見つける

$.Isotope.prototype._getCenteredMasonryColumns = function() { 
    this.width = this.element.width(); 
    var parentWidth = this.element.parent().width(); 

    // i.e. options.masonry && options.masonry.columnWidth 
    var colW = this.options.masonry && this.options.masonry.columnWidth || 
    // or use the size of the first item 
    this.$filteredAtoms.outerWidth(true) || 
    // if there's no items, use size of container 
    parentWidth; 

    var cols = Math.floor(parentWidth/colW); 
    cols = Math.max(cols, 1); 

    // i.e. this.masonry.cols = .... 
    this.masonry.cols = cols; 
    // i.e. this.masonry.columnWidth = ... 
    this.masonry.columnWidth = colW; 
    }; 

    $.Isotope.prototype._masonryReset = function() { 
    // layout-specific props 
    this.masonry = {}; 
    // FIXME shouldn't have to call this again 
    this._getCenteredMasonryColumns(); 
    var i = this.masonry.cols; 
    this.masonry.colYs = []; 
    while (i--) { 
     this.masonry.colYs.push(0); 
    } 
    }; 

    $.Isotope.prototype._masonryResizeChanged = function() { 
    var prevColCount = this.masonry.cols; 
    // get updated colCount 
    this._getCenteredMasonryColumns(); 
    return (this.masonry.cols !== prevColCount); 
    }; 

    $.Isotope.prototype._masonryGetContainerSize = function() { 
    var unusedCols = 0, 
    i = this.masonry.cols; 
    // count unused columns 
    while (--i) { 
     if (this.masonry.colYs[i] !== 0) { 
     break; 
    } 
    unusedCols++; 
    } 

    return { 
     height : Math.max.apply(Math, this.masonry.colYs), 
     // fit container to columns that have been used; 
     width : (this.masonry.cols - unusedCols) * this.masonry.columnWidth 
    } 
    }; 

任意のアイデアをリサイズ挿入する場所を私は見つけることができないのですか?

答えて

0

ソリューションは、単にwindow.resizeを行うANそれにタイマーを適用することでした。

var delay = (function(){ 
    var timer = 0; 
    return function(callback, ms){ 
    clearTimeout (timer); 
     timer = setTimeout(callback, ms); 
    }; 
})(); 

$(window).resize(function() { 
    delay(function(){ 
    if ($("#head").width() != $("#container").width()){ 
     var myLeft = $("#container").offset().left; 
     var newWidth = $("#container").innerWidth(); 
     var myRight = $("#container").offset().left + $("#container").outerWidth(); 
     $("#head").animate({ width: newWidth, marginLeft: myLeft, marginRight: myRight }, "fast"); 
    } 
    }, 800); 
}); 
関連する問題