国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > JavaScript > 正文

原生JS實(shí)現(xiàn)美圖瀑布流布局賞析

2019-11-20 11:36:04
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

自pinterest網(wǎng)站爆紅以來(lái),國(guó)內(nèi)一度掀起“仿PIN”狂潮,諸如花瓣、蘑菇街等等。正是如此,“瀑布流”式布局受到廣大網(wǎng)民的青睞。眾多知名JS庫(kù),也相繼出現(xiàn)“瀑布流”布局插件,譬如jQuery的Masonry插件、KISSY的waterfall插件等。今天閑來(lái)無(wú)聊,我也自己動(dòng)手弄了段原生JS代碼,實(shí)現(xiàn)了簡(jiǎn)單的“瀑布流”布局效果,當(dāng)然肯定不能和以上那些優(yōu)秀插件相提并論,有興趣的朋友,可以去看看,希望能帶給你或多或少的收獲。

1. js代碼:    

<!DOCTYPE html><html><head>  <meta charset="utf-">  <title>Waterfall代碼</title></head><body><style type="text/css">.wf-main{  position: relative;  margin: auto;  width: px;  overflow: hidden;}.wf-main .wf-cld{  position: absolute;  margin-bottom: px;  padding:px px;  width: px;  left: -px;  top: -px;  line-height:px;  border: px solid #;  border-radius: px;  background-color: #ccc;  overflow: hidden;}.wf-cld .inner{  position: absolute;  left: -px;  top: -px;  margin-bottom: px;  width: px;  overflow: hidden;  border: px solid #f;  border-radius: px;}.wf-cld .title{  margin:  px;  padding: px;  width: px;  color: #f;  font-size: px;}</style><div class="wf-main" id="wf-main">  <div class="wf-cld"><h style="color:#f">、瀑布流</h></div>  <div class="wf-cld"><br></div>  <div class="wf-cld"><br><br></div>  <div class="wf-cld"><br><br><br></div>  <div class="wf-cld"><br><br><br><br></div>  <div class="wf-cld"><br><br><br><br><br></div>  <div class="wf-cld"><br><br><br><br><br><br></div>  <div class="wf-cld"><br><br><br><br><br><br><br></div>  <div class="wf-cld"><br><br><br><br><br><br><br><br></div>  <div class="wf-cld"><br><br><br><br><br><br><br><br><br></div>  <div class="wf-cld"><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>  <div class="wf-cld"><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>  <div class="wf-cld"><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>  <div class="wf-cld" id="wf-inner">    <h class="inner title">、內(nèi)部瀑布流</h>    <div class="inner">-<br></div>    <div class="inner">-</div>    <div class="inner">-</div>    <div class="inner">-</div>    <div class="inner">-<br></div>    <div class="inner">-</div>    <div class="inner">-</div>    <div class="inner">-</div>    <div class="inner">-</div>  </div>  <div class="wf-cld"><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>  <div class="wf-cld"><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>  <div class="wf-cld"><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>  <div class="wf-cld"><br><br><br><br><br><br><br><br><br><br></div>  <div class="wf-cld"><br><br><br><br><br><br><br><br><br><br><br></div>  <div class="wf-cld"><br><br><br><br><br><br><br><br><br><br><br><br></div>  <div class="wf-cld"><br><br><br><br><br><br><br><br><br><br><br><br><br></div>  <div class="wf-cld"><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>  <div class="wf-cld"><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>  <div class="wf-cld"><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div></div><script type="text/javascript">function Waterfall(param){  this.id = typeof param.container == 'string' ? document.getElementById(param.container) : param.container;  this.colWidth = param.colWidth;  this.colCount = param.colCount || ;  this.cls = param.cls && param.cls != '' ? param.cls : 'wf-cld';  this.init();}Waterfall.prototype = {  getByClass:function(cls,p){    var arr = [],reg = new RegExp("(^|//s+)" + cls + "(//s+|$)","g");    var nodes = p.getElementsByTagName("*"),len = nodes.length;    for(var i = ; i < len; i++){      if(reg.test(nodes[i].className)){        arr.push(nodes[i]);        reg.lastIndex = ;      }    }    return arr;  },  maxArr:function(arr){    var len = arr.length,temp = arr[];    for(var ii= ; ii < len; ii++){      if(temp < arr[ii]){        temp = arr[ii];      }    }    return temp;  },  getMar:function(node){    var dis = ;    if(node.currentStyle){      dis = parseInt(node.currentStyle.marginBottom);    }else if(document.defaultView){      dis = parseInt(document.defaultView.getComputedStyle(node,null).marginBottom);    }    return dis;  },  getMinCol:function(arr){    var ca = arr,cl = ca.length,temp = ca[],minc = ;    for(var ci = ; ci < cl; ci++){      if(temp > ca[ci]){        temp = ca[ci];        minc = ci;      }    }    return minc;  },  init:function(){    var _this = this;    var col = [],//列高      iArr = [];//索引    var nodes = _this.getByClass(_this.cls,_this.id),len = nodes.length;    for(var i = ; i < _this.colCount; i++){      col[i] = ;    }    for(var i = ; i < len; i++){      nodes[i].h = nodes[i].offsetHeight + _this.getMar(nodes[i]);      iArr[i] = i;    }    for(var i = ; i < len; i++){      var ming = _this.getMinCol(col);      nodes[i].style.left = ming * _this.colWidth + "px";      nodes[i].style.top = col[ming] + "px";      col[ming] += nodes[i].h;    }    _this.id.style.height = _this.maxArr(col) + "px";  }};new Waterfall({  "container":"wf-inner",  "colWidth":,  "colCount":,  "cls":"inner"});new Waterfall({  "container":"wf-main",  "colWidth":,  "colCount":});</script></body></html>

2. [圖片] 瀑布流.jpg   

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 东明县| 绥棱县| 淅川县| 安义县| 虞城县| 衡山县| 荣昌县| 毕节市| 内江市| 垦利县| 襄汾县| 建昌县| 和静县| 滁州市| 安康市| 溧阳市| 永昌县| 山丹县| 玉田县| 城口县| 梅州市| 三穗县| 邢台市| 宿松县| 唐山市| 扎鲁特旗| 莱州市| 昔阳县| 芜湖市| 长泰县| 上杭县| 河津市| 高陵县| 内丘县| 阜城县| 伊春市| 内江市| 红原县| 五华县| 分宜县| 大洼县|