1. 程式人生 > >一種效果還不錯的圖片排列策略

一種效果還不錯的圖片排列策略

提醒:本文最後更新於 2739 天前,文中所描述的資訊可能已發生改變,請謹慎使用。

QuQuBlog 相簿中的圖片列表,之前是把圖片定高,容器定寬來排的。這樣實現起來簡單粗暴,但在圖片大小不一,尤其是橫豎圖片混排時,豎著的圖片兩側很空,不好看,還佔地方。

最近,用了一種新策略來改進圖片排列,效果大約是這樣:

在各種解析度下都是這樣的效果:

  • 列表左右兩側對齊;
  • 每個圖片容器邊距一致;
  • 圖片定高,不壓縮不拉伸,儘可能保證原本高寬比例。

點頂部導航中的“相簿”或者點這裡可以看到實際效果(@update 2014.02.10,部落格改版,現在已經沒有相簿了),想知道具體策略繼續往下看。

每個圖片容器都是絕對定位,hidden掉overflow;圖片容器高度總等於圖片高度,寬度和位置是在頁面載入完和每次視窗resize時算出來的。計算的步驟如下:

  1. 首先得到圖片列表容器寬度containerWidth;
  2. 讓每個圖片容器的寬度等於自己圖片的寬度;
  3. 迴圈圖片容器列表,把圖片容器分成若干行。確保每行寬度rowWidth大於或等於containerWidth(大部分情況是少一張寬度不夠,多一張寬度就超過了,所以rowWidth一般都大於containerWidth);
  4. 如果rowWidth大於containerWidth,根據圖片容器原始寬度在rowWidth所佔比例,把超過的部分平均分給每個容器。這樣每個容器寬度都減少了一些,列表右側就是對齊的;
  5. 經過上一步,大部分圖片容器寬度都小於圖片寬度,給圖片負margin,保證居中顯示;
  6. 根據圖片容器所在行數和順序設定容器top和left位置;
  7. 最後根據圖片容器總行數設定列表容器高度containerHeight。

上面的策略用QWrap寫出來也就幾十行。由於圖片容器都是絕對定位,可以方便地加上動畫。最後,視窗resize時要delay一下再重新排,不然看起來有點奇怪,也影響效能。

--EOF--

提醒:本文最後更新於 2739 天前,文中所描述的資訊可能已發生改變,請謹慎使用。

相關推薦

效果不錯圖片排列策略

提醒:本文最後更新於 2739 天前,文中所描述的資訊可能已發生改變,請謹慎使用。 QuQuBlog 相簿中的圖片列表,之前是把圖片定高,容器定寬來排的。這樣實現起來簡單粗暴,但在圖片大小不一,尤其是橫豎圖片混排時,豎著的圖片兩側很空,不好看,還佔地方。 最近,用了一種新策略來改進圖片排列,效果大約

[轉]讓超大banner圖片不拉伸、全屏寬、居中顯示的方法

posit code overflow 都是 flow cnblogs width banner 圖片 現在很多網站的Banner圖片都是全屏寬度的,這樣的網站看起來顯得很大氣。這種Banner一般都是做一張很大的圖片,然後在不同分辨率下都是顯示圖片的中間部分。實現方法如下

一個視覺效果不錯的圖表控制元件

Jgraph 專案地址:ZuYun/Jgraph  簡介::fire: 一個視覺效果還不錯的圖表控制元件 更多:作者   提 Bug    標籤:       &

很好玩的效果mark

這樣的樣式大家應該在很多網站都見到過,要實現這樣的效果,我們首先先來分析下: (1)大體的思路:用ul>li*10——每個li左浮動——外邊距調 (這個應該很easy)先把每個li的位置調好 (2)然後是設定每個li,一個li會了,之後的幾個都一樣。一個li分為

第三節--改進的中值濾波策略的實現

 //----------------------------------------【一種改進的中值濾波策略的實現】------------------------------------ //1--傳統的中值濾波器的缺點:中值濾波的效果依賴於--濾波視窗的大小,太大

小tip-圖片載入狀態效果的實現

做的一個需求,其中有一個是實現類似於下圖的一個圖片上傳效果: 從本地上傳圖片到伺服器,然後伺服器響應返回這個圖片在伺服器上的連結地址,將這個連結地址所對應的圖片顯示到螢幕上,並且在此圖片資源完全下載下來之前,呈現一個動態 loading的展點陣圖,直到圖片完全下載後進行替換 小tip

基於vue的圖片載入狀態效果的實現

做的一個需求,其中有一個是實現類似於下圖的一個圖片上傳效果: 從本地上傳圖片到伺服器,然後伺服器響應返回這個圖片在伺服器上的連結地址,將這個連結地址所對應的圖片顯示到螢幕上,並且在此圖片資源完全下載下來之前,呈現一個動態 loading的展點陣圖,直到圖片完全

android listview & toolbar形成的炫酷效果(外加一個圓形圖片的實現)

介面的效果用到的技術都很基本, 但實現的思路很新穎, 程式碼和佈局充滿各種技巧, 值得學習和借鑑. 效果圖: 原理圖: 佈局程式碼: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res

c語言中典型的排列組合算法

scan .com nbsp 方法 can main else const 組合數 c語言中的全排列算法和組合數算法在實際問題中應用非常之廣,但算法有許許多多,而我個人認為方法不必記太多,最好只記熟一種即可,一招鮮亦可吃遍天 全排列: #include<stdio.h

Qt之自定義搜索框——QLineEdit裏增加一個Layout,不影響正常輸入文字(好像是比較通吃的方法)

too 步驟 set box 文本 csdn sub void 鼠標 簡述 關於搜索框,大家都經常接觸。例如:瀏覽器搜索、Windows資源管理器搜索等。 當然,這些對於Qt實現來說毫無壓力,只要思路清晰,分分鐘搞定。 方案一:調用QLineEdit現

策略融合的跨語言文本情感傾向判別方法》論文學習筆記(大一下)

建立 現象 資源 步驟 特征選擇 標簽 標註 障礙 協同 現象:因特網資源呈現多語言化和跨語言的特點,給普通用戶獲取非母語網絡信息造成障礙。 目標:整合多語言傾向信息,以通用的數據形式讓用戶了解多語言數據對某個對象的評價。 針對跨語言情感傾向分類任務,提出兩種跨語言

Android分包策略推薦

簡單 重要性 xxx ava 經驗 music androi news 開源 分包的重要性 在架構一個App時,大家往往都在關註新潮的技術,卻忽略了一點,那就是分包。很多人可能沒有一套分包的原則,憑感覺甚至隨心所欲地創建package或將代碼放到任意的package中。 雖

純css寫出愛心版加載效果,等待加載也是享受

前端 css 加載 現在互聯網時代網站何其多,各有各得風格,但是什麽樣的風格能留住用戶的停留觀看呢?就從加載來說,很多加載效果都是同一種風格可能用戶經常逛網站早已經習慣,要是你的加載時間比其他網站時間長,效果還是一樣的,可能就會關掉你的網站去其他網站觀看,但是如果你的加載效果別具一格,有特點,可

CAC安全中心威脅情報 ——新型釣魚郵件威脅與應對策略

CAC安全中心威脅情報 ——一種新型釣魚郵件威脅與應對策略 1、 釣魚郵件威脅情報 2018年9月7日,Coremail CAC安全中心發現有一種新型的釣魚郵件正在呈現擴散趨勢,由於該釣魚郵件的偽裝程度較高,部分使用者容易輕信誤點選釣魚連結。此類郵件通常會偽裝成企業內部的使用者,向

告訴你圖片裡馬冬梅,冬馬梅分別在哪裡的演算法,YOLO演算法2016論文筆記

寫在最前面 作者Joseph Redmon是我曾經的男神。作為當時學深度學習時亮到我的文章(他的官網也是“亮”到了我),我決定第一篇論文筆記就寫這篇YOLO演算法論文。對於一張影象,其中的物體可能很多,如何識別其中物體是什麼,在哪裡,就要看這篇代表作品了。 論文名 Y

吸頂效果的另實現

  前面介紹過一篇文章,是使用ItemDecoration來實現吸頂效果,使用起來很解耦,簡單,方便,但是優缺點是拓展性比較差,今天就通過另一種方式來實現吸頂效果,並且吸頂欄可以高度制定佈局和互動,步入正題,下面來實現它,先看看效果圖: 一、實現原理 頭部的內容位於R

VS程式設計,WPF中telerik:RadButton增加背景圖片方法

  1、新建資料夾存放圖片 2、右擊圖片資料夾,資源管理器中開啟,將需要的圖片放在資料夾內 3、將圖片包括在專案裡  4、增加控制元件,增加圖片背景 <telerik:RadButton Margin="4,0,0,0"

Bert-基於深度雙向Transform的語言模型預訓練策略

今天的部落格主要參考了論文《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding》。這篇paper是Google公司下幾個研究員發表的,而且在NLP領域引起了很大的轟動(在多個NLP任

C到C++的另錯誤處理策略

這篇短文是討論一個大多數程式設計師都感興趣的一個話題:錯誤處理。錯誤處理是程式設計的一個“黑暗面”。它既是應用程式的“現實世界”的關鍵點,也是一個你想隱藏的複雜業務。  下面我們就來看看我所瞭解的幾種吧! C語言的方式:返回錯誤碼 C語言風格的錯誤處理是最簡單的,但是並不完美。