代码之家  ›  专栏  ›  技术社区  ›  mayersdesign

过滤网格后重新应用jquery匹配高度

  •  6
  • mayersdesign  · 技术社区  · 6 年前

    jquery-match-height 以匹配同位素布局的网格项内的内部div的高度,当同位素网格加载时,这是完美的工作方式。

    过滤网格 ,则div不再由matchheight脚本处理,每个div都返回其原始高度。

    我试过:

      $grid.on( 'arrangeComplete', function() { 
       console.log("OK, arrangeComplete");
       $.fn.matchHeight._update();
       //$('.card-text').matchHeight(); //Here I tried simply re-initiating... no effect
      });
    

    if (!$grid.data('isotope').filteredItems.length ) {
     $.fn.matchHeight._update();
    }
    

    2 回复  |  直到 6 年前
        1
  •  1
  •   Mohammadreza Esmaeeli    6 年前

    这不是一个完美的方法,但你可以尝试:

    setInterval(function(){
      $(function() {
        $('.item').matchHeight(options);
      });
    } , 300);
    
        2
  •  1
  •   mayersdesign    4 年前

    好吧,我一点也不确定这是最优雅的方法,但它已经奏效了。

    可见元素 (由于筛选器不会删除与筛选器不匹配的项,因此它只是将它们设置为“display:none"

    //Filter complete
    $grid.on( 'arrangeComplete', function( event, filteredItems ) {
      //matchheight on the visible items 
      $('.item:visible').matchHeight(); 
      //And re-layout the grid  
      $grid.isotope('layout'); 
    });