亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

網(wǎng)頁上的攝影展:等高響應(yīng)布局實現(xiàn)

系統(tǒng) 2300 0

?

等高響應(yīng)式布局 」是什么?介紹它之前,我們先回憶一下它的近親「等寬響應(yīng)式瀑布流」。

回憶一下,Pinterest、Google+、花瓣網(wǎng)、美麗說等是否讓你沉浸于不斷往下拉體驗豐富的圖片閱覽?

那種感覺就像逛街,讓所有商品呈現(xiàn)在網(wǎng)頁上,只需要往下拉鼠標就能逐個瀏覽,不斷加載,他們簡潔同時整齊,原因是他們的 寬度相等 ,但是 高度不一 。

?

這就是所謂的「等寬響應(yīng)式瀑布流」,它的特點如下:

1. 響應(yīng)式 ,適應(yīng)PC端以及移動端各設(shè)備呈現(xiàn)不同的寬度和單列數(shù)量;

2. 等寬 ,這樣的布局十分適合瀑布流,有不斷向下的閱讀感;

3. 沒有腳的小鳥 ,因為內(nèi)容是不斷向下加載,因此頁腳基本是看不到了;

這樣的布局引起了一個風(fēng)潮,然而把圖片適應(yīng)到等寬,高度等比例變化,對不考慮容器高度的瀏覽來說實現(xiàn)并不難,因此業(yè)界也大多采用了這樣的布局,而且可以響應(yīng)式,在不同屏幕寬度可以變化不同卡片寬度。

然而,回歸正題,今天要說的和這個不同,但是相近,它就是「 等高響應(yīng)式布局 」。

?

先看看效果圖:

photoLayout_preview

如圖,并不像等寬一樣簡單,要在不改變圖片分辨率(寬高比)同時保持等高且占滿行寬度,如何實現(xiàn)?不妨帶著問題跟我走。

?

1 等高響應(yīng)式布局是什么?

①行內(nèi)高度相等;
②行間總寬度相等;
③自適應(yīng)寬度布局;
④圖片分辨率(寬高比)不變;

?

2 難在那里?

①行內(nèi)高度一致,行間高度不一致,但是相差不能太多;
②并不知道一行需要多少個圖片才能占滿寬度,由于高度不確定,圖片的寬度也不能等比變化;
③如何做到自適應(yīng)?
④布局用于用戶的個人相冊,數(shù)據(jù)量是有限且未知的,如何保證圖片數(shù)量滿行顯示?

由上可知,這種布局涉及太多變量,而且最難的是做到圖片分辨率不改變,不影響圖片質(zhì)量效果。

該如下下手?我的思路是: 確定一個變量,其他變量根據(jù)這個變量做適應(yīng)性調(diào)整 。

?

3 解決方法(具體下面會有圖示)

確定一個變量。 由于當(dāng)前的瀏覽器寬度是固定的,因此可以根據(jù)瀏覽器寬度范圍制定一個標準高度,類似CSS的 媒體查詢 (media query);

初次變換。 所有圖片寬度根據(jù)這個標準高度作寬度的等比例縮放;

創(chuàng)造容器。 每行建立一個div,并裝入盡可能多的圖片,直到容器裝不下;

第一步調(diào)整。 每行根據(jù)自己與目標寬度(當(dāng)前瀏覽器寬度)的差值,再等比例變化寬、高。

公式如下: 當(dāng)前行總寬度/目標寬度=每個圖片當(dāng)前高度/變化后高度 ;
第二步調(diào)整。 根據(jù)變化后高度再等比變化各圖片寬度;

?

4 操作圖示

?

step123

step45

大工告成!然而深入考慮和分析,還總結(jié)出一些別的問題,我用了以下不同的處理方法把這些問題解決。

?

5 其他問題

①高度調(diào)整公式會產(chǎn)生百分比,瀏覽器是會直接取整,因此可能會產(chǎn)生-2到2px的誤差;

解決方法 :調(diào)整后記錄每行誤差值gap,然后循環(huán)把gap的值分給同行每一張圖片,這樣前2張圖片可能會有±1px的圖片寬度變化,但是用戶基本覺察不了圖片的輕微拉伸變化。

②用戶圖片數(shù)可能過少,會有圖片只有1-3張占不滿一行的情況,該怎樣顯示布局;

解決方法 :判斷只有1行圖片的時候不作布局調(diào)整,少于1行則默認顯示等高變化后的圖片即可(即只調(diào)整一次,不需要為剩余值再自適應(yīng))。

③ 每行調(diào)整前的剩余寬度過大,導(dǎo)致調(diào)整后寬高很大;

解決方法 :若調(diào)整后寬高是原始寬高的150%左右則該行舍棄,這里考慮到整體圖片質(zhì)量,確保不影響圖片墻效果。

④ 用戶上傳的照片太小,例如16×16的小圖標,如果一樣的方式調(diào)整會與400×800這些圖片并列放大,造成很大縮放比。

解決方法 :考慮到是圖片墻的效果,一般不會有用戶傳一些其他的圖片,例如表情素材等等,同時在圖片處理時可以加一個排序,獲取了圖片寬高后把小于一定值的圖片排在最后再一起顯示;

?

6 其他

目前有2個網(wǎng)站已經(jīng)初步實現(xiàn)這種效果,如百度圖片和flickr,如下圖:

baidu_layout

flick_layout

然而,我們的布局有如下優(yōu)勢:

(1) flickr并沒有兼容到ie6-7,可是由于我們的項目一般用戶量比較大同時要考慮到所有用戶,因此有必要做到兼容ie6以上所有瀏覽器包括各種現(xiàn)代瀏覽器;

(2) 百度其實并沒有做到完美的滿寬,如圖右邊,每行右邊會出現(xiàn)不對齊,而我們的解決方案可以避免這樣的誤差(其他問題①);

?

7 總結(jié)

這個布局的優(yōu)勢顯而易見: 整齊又多變,規(guī)則又繁雜 ,用最純粹的方式展現(xiàn)圖片的魅力。

就如一個「網(wǎng)站版的攝影展」。

實現(xiàn)如此的方案,需要細心分析,仔細考慮,繁雜的效果只會降低圖片的展現(xiàn)力,所以需要先做加法,豐富功能,再做減法,去其糟粕。

?

demo效果請 點擊這里 。

這個布局將會用在QQ空間V8版本新攝影控版式,敬請期待。

?
注明出處格式:騰訊ISUX ( http://isux.tencent.com/high-equal-response-layout-html.html )

網(wǎng)頁上的攝影展:等高響應(yīng)布局實現(xiàn)


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!??!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 欧美日韩亚洲一区二区三区 | 九九99香蕉在线视频网站 | 日韩国产成人 | 中文字幕一区婷婷久久 | 久久97精品久久久久久久看片 | 国产成人精品高清在线观看99 | 狠狠色噜噜狠狠狠狠色综合网 | 一区一精品 | 视频二区 中文字幕 欧美 | 日本中文字幕一区二区高清在线 | 国产精品久久久久久麻豆一区 | 在线免费毛片 | 久久久久久久蜜桃 | 久久免费网 | 射综合网 | 国产福利免费看 | 最新69成人精品毛片 | 国产精品久久久久免费 | 好吊妞欧美视频免费 | 日本一区二区三区免费在线观看 | 欧美视频在线观在线看 | 精品国产福利久久久 | 久久精品国产只有精品6 | 日本私人影院 | 99视频在线免费观看 | 国产日产欧美a级毛片 | 久久精品视频6 | 久久一区 | 久久毛片免费看一区二区三区 | 欧美成人免费xxx大片 | 亚洲欧美国产18 | 国内精品久久久久久久久 | 麻豆国产一区 | 欧美一级高清免费a | 一本久道久久综合中文字幕 | 美国黑人特大一级毛片 | 亚洲精品高清国产麻豆专区 | 成人欧美一区二区三区在线 | 日本免费小视频 | 男人叼女人的痛爽视频免费 | 成人免费视频视频在线观看 免费 |