2014-02-22 66 views
1

我已經看過,但找不到任何接近我想要的東西(仍在學習)。如何限制同位素的過濾結果?

方案

我使用http://isotope.metafizzy.co/過濾RSS數據。

我拉着6個不同的rss feed,每個帖子有10個帖子,總共60個帖子。

對於每組Feed,我有6個過濾器(組合類型),這意味着我可以選擇一次過濾多個過濾器。

由於我有大量的數據,我只想在頁面上顯示最新的前15個。

據我所知,同位素需要看到整個數據才能正確過濾。

所以,問題是我怎麼才能顯示15,不管我選擇多少個濾鏡組合?

我不能使用':nth-​​child(-n + 15)',因爲它只會選擇DOM中佈局的內容,而不是定位元素。任何指針?

僞代碼:

$container.imagesLoaded(function(){ 
    $container.isotope({ 
    filter : comboFilter, 
    itemSelector : '.element', 

    }, function displayOnly15($elem) { 

    //how do I display only 15? 

    }) 
}); 

上午我之前或之後缺少一個重要步驟/過程?

想通了,我可以這樣做:

var $filtered = $container.data('isotope').$filteredAtoms; 

然後使用類似:

$keep = $filtered.slice(0,14); 
$remove = $filtered.filter(function(i){ 
    return i > 14; 
}); 

但呼籲:

$container 
      .isotope('insert', $keep) 
      .isotope('remove', $remove); 

...之後,刷新佈局連續兩次。

幫助!

回答

0

對於代碼的最後一點,我想你想使用爲addItems(Found on this page):

使用方法如下:

$container.isotope('addItems', elements) 

它就像插入,但它並沒有打好項目了。那麼這個:

$container 
     .isotope('addItems', $keep) 
     .isotope('remove', $remove); 

會做交換,然後做一個佈局。

在僅顯示15個項目方面,你總是可以只爲hide()任何額外的項目。做任何事情都需要自定義javascript來創建和/或交換實際的數據。

如果朝這個方向發展,比同位素和jQuery更重要的東西可能會有所幫助(如角度,挖空等)。

+0

阿哈,這工作!謝謝。 – niajahi