原生js實現(xiàn)瀑布流

??????? 瀏覽網(wǎng)頁的時候經常會遇到瀑布流布局的網(wǎng)站抬旺。也許有些讀者不了解瀑布流。瀑布流祥楣,又稱瀑布流式布局开财。是比較流行的一種網(wǎng)站頁面布局汉柒,視覺表現(xiàn)為參差不齊的多欄布局,隨著頁面滾動條向下滾動责鳍,這種布局還會不斷加載數(shù)據(jù)塊并附加至當前尾部碾褂。比如下面圖片的效果,就是一個典型的瀑布流历葛。


網(wǎng)上有很多JQ的瀑布流插件正塌,而且都寫好了兼容,都可以嘗試去使用恤溶,這里只是跟大家分享一下原生js實現(xiàn)瀑布流的效果乓诽,一起學習。

```<!doctype html>

<html lang = "en">

<head>

???????????? <meta charset? = "UTF-8">

???????????? <title>原生js瀑布流</title>

<style type="text/css">

??????????? div{
???????????????????? background:#ccc;

???????????????????? width:200px;

???????????????????? position: absolute;

??????????????????? transition:0.5s;

??????????????? }

</style>

</head>

<body>

<script type="text/javascript">

function createDiv(){

for(var i =0; i<20; i++){

var div =document.createElemnet("div");

var rnd = Math.floor(Math.random()*300+50)? // div的高度在50到350之間

div.style.height = rnd+"px";

div.innerHTML = i;

document.body.appendChild(div);

}

change()

}

function change(){

var aDiv = document.getElementsByTagName('div');

var windowCw = document.documentElement.clientWidth;? //窗口可視的寬度

var n? = Math.floor(windowCw/210);?? /一行可以容納幾個div咒程,并向下取整

if (i<=0){

return}

var t =0;

var center = (windowCw-n*210)/2;???????? //居中

var arrH = []; //定義一個空數(shù)組鸠天,存放div的高度

for(var i= 0;i<arrH.length;i++){
var j = i%n;

if (arrH.length==n) {? ? ? ? ? ? ? ? ? ? //一行排滿n個后到下一行

var min = findMin(arrH);? ? ? ? ? ? ? //從最“矮”的排起,可以從下圖的序號中看得出來孵坚,下一行中序號是從矮到高排列的

aDiv[i].style.left =center + min*210 + "px";

aDiv[i].style.top = arrH[min]+10 + "px";

arrH[min] += aDiv[i].offsetHeight + 10;

// alert(min);

}else{

arrH[j] = aDiv[i].offsetHeight;

aDiv[i].style.left =center + 200*j+10*j + "px";

aDiv[i].style.top = 0;

}

};

}

window.onresize = function(){? ? ? //窗口改變也調用函數(shù)

change();

}

window.onscroll= function? () {

// 頁面總高度

var bodyHeight = document.documentElement.offsetHeight;

// 可視區(qū)高度

var windowHeight = document.documentElement.clientHeight;

//滾動條的高度

var srcollTop = document.documentElement.scrollTop || document.body.scrollTop;

var srcollH = document.body.scrollHeight;

// alert(srcollH);

if (srcollTop+windowHeight? >= srcollH-20) {

createDiv();

};

}

function findMin(arr) {

var m = 0;

for (var i = 0; i < arr.length; i++) {

m = Math.min(arr[m], arr[i]) == arr[m] ? m : i;

}

return m;

}

</script>

</body>

</html>

```

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市窥淆,隨后出現(xiàn)的幾起案子卖宠,更是在濱河造成了極大的恐慌,老刑警劉巖忧饭,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件扛伍,死亡現(xiàn)場離奇詭異,居然都是意外死亡词裤,警方通過查閱死者的電腦和手機刺洒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來吼砂,“玉大人逆航,你說我怎么就攤上這事∮婕纾” “怎么了因俐?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長周偎。 經常有香客問我抹剩,道長,這世上最難降的妖魔是什么蓉坎? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任澳眷,我火速辦了婚禮,結果婚禮上蛉艾,老公的妹妹穿的比我還像新娘钳踊。我一直安慰自己衷敌,他們只是感情好,可當我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布箍土。 她就那樣靜靜地躺著逢享,像睡著了一般。 火紅的嫁衣襯著肌膚如雪吴藻。 梳的紋絲不亂的頭發(fā)上瞒爬,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天,我揣著相機與錄音沟堡,去河邊找鬼侧但。 笑死,一個胖子當著我的面吹牛航罗,可吹牛的內容都是我干的禀横。 我是一名探鬼主播,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼粥血,長吁一口氣:“原來是場噩夢啊……” “哼柏锄!你這毒婦竟也來了?” 一聲冷哼從身側響起复亏,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤趾娃,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后缔御,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體抬闷,經...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年耕突,在試婚紗的時候發(fā)現(xiàn)自己被綠了笤成。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡眷茁,死狀恐怖炕泳,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情上祈,我是刑警寧澤喊崖,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站雇逞,受9級特大地震影響荤懂,放射性物質發(fā)生泄漏。R本人自食惡果不足惜塘砸,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一节仿、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧掉蔬,春花似錦廊宪、人聲如沸矾瘾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽壕翩。三九已至,卻和暖如春傅寡,著一層夾襖步出監(jiān)牢的瞬間放妈,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工荐操, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留芜抒,地道東北人。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓托启,卻偏偏與公主長得像宅倒,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子屯耸,可洞房花燭夜當晚...
    茶點故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內容