2014-09-04 58 views
3

我有一個圖像循環。基於Forloop模式的圖像大小

期望的圖案:

1 4 5 8 9  12 13  16 
2 3 6 7  10 11  14 15 

基於for循環數,我將有2點可能的圖像的大小,在上面的那些將是尺寸1和在底部的那些將是大小2.

所以我用divisibleby:「x」開頭,但很快就意識到這不會奏效,因爲該模式並不總是允許divisibleby,並且在某些情況下兩者都可能是真實的。

我可以litteraly這樣做manualy檢查的數量是在列表中,如:

[2,3,6,7,14,15....] 

但是,這將是非常愚蠢的。

有沒有簡單的方法來做到這一點?

我原來的想法,那根本就沒有用!

{% for project in branding %} 
    {% if forloop.counter == 1 or forloop.counter|divisibleby:"4" or forloop.counter|divisibleby:"5" %} 
     <div class="tile"> 
      <a href="/work/{{ project.slug }}/"> 
       <img src="{% thumbnail project.tile_image "313x490" crop="center" as im %}{{ im.url }}{% endthumbnail %}"> 
      </a> 
     </div> 
    {% endif %} 
    {% if forloop.counter|divisibleby:"2" or forloop.counter|divisibleby:"3" %} 
     <div class="tile"> 
      <a href="/work/{{ project.slug }}/"> 
       <img src="{% thumbnail project.tile_image "313x310" crop="center" as im %}{{ im.url }}{% endthumbnail %}"> 
      </a> 
     </div> 
    {% endif %} 
{% endfor %} 

回答

3

這看起來像內置的模板標籤給我cycle的情況下:

{% for project in branding %} 
    <div class="tile"> 
     {% cycle '313x490' '313x310' '313x310' '313x490' as size silent %} 
     <a href="/work/{{ project.slug }}/"> 
     <img src="{% thumbnail project.tile_image size crop="center" as im %}{{ im.url }}{% endthumbnail %}"> 
     </a> 
    </div> 
{% endfor %} 

但我對您使用的thumbnail標籤不熟悉,所以可能會出現複雜的情況。

+0

這是一個非常好的解決方案,它的工作原理非常簡單! – Harry 2014-09-04 15:25:45

+0

我看到了你提出的編輯 - 「silent」參數,現在補充,也將停止不必要的輸出。 – 2014-09-04 15:42:11

+0

非常好,謝謝 – Harry 2014-09-13 09:32:21

5

我相信你正在尋找的情況下,你的電話號碼MOD 4是2或3

2 % 4 = 2 
3 % 4 = 3 
6 % 4 = 2 
7 % 4 = 3 
10 % 4 = 2 
11 % 4 = 3 
+0

哇,我什至都沒有想過這個.. :-(謝謝! – Harry 2014-09-04 15:23:43