打包算法我想創建圖像的列表擠滿了同樣的方式Facebook正在做的,當你在一個相冊:圖片在JavaScript
所以,輸入數據是:
- 我們的圖像與已知的
width
和height
- 一個
infinite
列表中,我們有一個已知一個container
0和無限高度 - 我們希望按優先列數列出的順序顯示圖像,調整它們的寬度以適應容器寬度
- 有時圖像覆蓋一個或兩個或多個行爲逢縱向或橫向
一些ASCII場景覆蓋可能的情況:
|------------------|------------------|------------------|
| | | |
| Normal tile | Normal tile | Normal tile |
| | | |
|------------------|------------------|------------------|
| | |
| Landscape tile | |
| | |
|------------|------------------------|------------------|
| | | |
| Smaller | Landscape tile | Normal tile |
| | | |
|------------|--|------------------|--|------------------|
| | | |
| Portrait tile | Normal tile | Larger tile |
| | | |
| |------------------|---------------------|
| | | |
| | Larger tile | Normal tile |
| | | |
|---------------|---------------------|------------------|
我想過用樹形圖的算法從D3 JS,但我不能肯定是否會給出正確的選擇,在我的問題是我不知道容器的高度。
這是一個包裝問題。
任何幫助或想法將不勝感激!
更新
可接受的是圖像進行縮放或剪切到更好地適應的佈局。 因此,例如,如果存在用於填充行的正方形瓷磚的位置並且當前圖像是縱向圖像,則該算法可以將圖像縮放到可用寬度並將其夾到可用高度,或者以其他方式。
您可能想查看Flexbox網格系統。 https://philipwalton.github.io/solved-by-flexbox/demos/grids/ –
樹形圖並不是這裏的最佳選擇。根據傳遞的值和平鋪方法,樹形圖的洞點將動態生成矩形。這顯然不是你想要的,因爲你已經爲每個元素預定義了寬度和高度。 –
感謝@NicoVanBelle,看起來像一個很好的資源! – bluehipy