基于浮動(dòng)的移動(dòng)端兩列可延時(shí)加載的瀑布流布局

幾點(diǎn)說明

1.本文所說的瀑布流指的是等寬不等高的瀑布流

2.本文使用的方法可以使用圖片延時(shí)加載而不會(huì)影響瀑布流效果

延時(shí)加載瀑布流實(shí)現(xiàn)的主要問題

主要的問題在于延時(shí)與圖片高度計(jì)算的沖突,延時(shí)加載完成前后圖片的高度是會(huì)發(fā)生變化的,瀑布流函數(shù)計(jì)算的每列高度不一定準(zhǔn)確,定位會(huì)出現(xiàn)問題。筆者先嘗試過使用絕對定位實(shí)現(xiàn)瀑布流布局,但是因?yàn)檠訒r(shí)加載問題,出來的效果并不是很理想,也嘗試過使用onload事件來觸發(fā)瀑布流函數(shù),但是不知道具體什么原因定位還是不準(zhǔn)確。所以為了盡快完成工作任務(wù),使用了本文的這個(gè)方式,思想基本相同,只是定位元素位置的方式是使用浮動(dòng)。因此也局限了瀑布流的列數(shù)只能是兩列,應(yīng)對移動(dòng)端應(yīng)該是夠用了。

瀑布流的幾種實(shí)現(xiàn)方式

1.絕對定位實(shí)現(xiàn),通過JS計(jì)算每一列的高度,然后通過絕對定位來實(shí)現(xiàn)每個(gè)元素位置的排列以實(shí)現(xiàn)瀑布流的形式。

2.將屏幕分成等寬的若干列,每一列都是一個(gè)容器,通過計(jì)算每個(gè)容器的高度,將元素放在高度最低的容器中。

3.使用CSS3的多列布局,這個(gè)方法個(gè)人認(rèn)為實(shí)現(xiàn)起來比較簡單,但是有一個(gè)問題,重新加載的內(nèi)容是頁面右側(cè),而不是在頁面下方。想要用這種方法的去百度一下CSS3實(shí)現(xiàn)瀑布流網(wǎng)上有很多實(shí)例。

本文實(shí)現(xiàn)的代碼

JS代碼如下:

function water(){? ? ? ? ? ? var arrBox=$('#content').children('.box');//box對象? ? ? ? ? ? var arrBoxH=[];//數(shù)組,用于存儲(chǔ)左側(cè)列中的所有塊框相加的高度? ? ? ? ? ? var arrBoxR=[];//數(shù)組,用于存儲(chǔ)右側(cè)列中的所有塊框相加的高度for(var i=0;i rightNum) //比較兩側(cè)高度大小,決定為該box添加左浮動(dòng)還是右浮動(dòng)? ? ? ? ? ? ? ? ? ? {? ? ? ? ? ? ? ? ? ? ? ? arrBox.eq(i).removeClass();? ? ? ? ? ? ? ? ? ? ? ? arrBox.eq(i).addClass("box right");//左側(cè)較高為該box添加右浮動(dòng)? ? ? ? ? ? ? ? ? ? ? ? arrBoxR[i]=boxH;//將高度添加在右側(cè)數(shù)組? ? ? ? ? ? ? ? ? ? }else{? ? ? ? ? ? ? ? ? ? ? ? arrBox.eq(i).removeClass();? ? ? ? ? ? ? ? ? ? ? ? arrBox.eq(i).addClass("box left");//右側(cè)較高為該box添加左浮動(dòng)? ? ? ? ? ? ? ? ? ? ? ? arrBoxH[i]=boxH;//將高度添加在左側(cè)數(shù)組? ? ? ? ? ? ? ? ? ? }? ? ? ? ? ? ? ? }? ? ? ? ? ? }? ? ? ? }

html代碼+css代碼

*{margin:0;padding:0;}#content{position:relative;margin:0auto;}.box{width:50%;float:left;}.boximg{width:100%;height:auto;display:block;}.left{float:left;}.right{float:right;}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 14,118評論 1 92
  • html結(jié)構(gòu) (Emmet) (div.box>div.pic>img[src="images/$.jpg"])*...
    LaBaby_閱讀 737評論 0 0
  • 所謂瀑布流,就是圖片分幾列有規(guī)律的排列,但是這里的排列是有要求的,普通的浮動(dòng)布局會(huì)使圖片與圖片之間有很多的空隙,這...
    小飛俠zzr閱讀 884評論 0 0
  • 創(chuàng)建線程池 其中參數(shù)的含義為 添加任務(wù)到線程池 Executors 框架提供的方式 Executors 提供了四種...
    看我眼前007閱讀 705評論 0 1
  • 在網(wǎng)友二美的倡議推動(dòng)下,前一段加入了“幸福群每日感恩三件事”,每日寫出三件值得感恩、覺得幸福的事情。她說她在研...
    海藍(lán)26閱讀 1,756評論 2 0

友情鏈接更多精彩內(nèi)容