成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

原生JS實(shí)現(xiàn)的簡(jiǎn)單“瀑布流”布局

開(kāi)發(fā) 前端
自己動(dòng)手弄了段原生JS代碼,實(shí)現(xiàn)了簡(jiǎn)單的“瀑布流”布局效果,當(dāng)然肯定不能和以上那些優(yōu)秀插件相提并論,有興趣的朋友,可以去看看,希望能帶給你或多或少的收獲。

自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)秀插件相提并論,有興趣的朋友,可以去看看,希望能帶給你或多或少的收獲。

效果預(yù)覽: http://www.seejs.com/waterfall/   

標(biāo)簽: <無(wú)>
 
[代碼] [JavaScript]代碼
 
  1. <!DOCTYPE html>    
  2.  <html>    
  3.  <head>    
  4.      <meta charset="utf-8">    
  5.      <title>Waterfall代碼</title>    
  6.  </head>    
  7.  <body>    
  8.  <style type="text/css">    
  9.  .wf-main{    
  10.      position: relative;    
  11.      margin: 0 auto;    
  12.      width: 990px;    
  13.      overflow: hidden;    
  14.  }    
  15.  .wf-main .wf-cld{    
  16.      position: absolute;    
  17.      margin-bottom: 10px;    
  18.      padding:5px 8px;    
  19.      width: 214px;    
  20.      left: -9999px;    
  21.      top: -9999px;    
  22.      border: 1px solid #999;    
  23.      border-radius: 4px;    
  24.      background-color: #ccc;    
  25.      overflow: hidden;    
  26.  }    
  27.  .wf-cld .inner{    
  28.      position: absolute;    
  29.      left: -9999px;    
  30.      top: -9999px;    
  31.      margin-bottom: 5px;    
  32.      width: 73px;    
  33.      overflow: hidden;    
  34.      border: 1px solid #f00;    
  35.      border-radius: 3px;    
  36.  }    
  37.  .wf-cld .title{    
  38.      margin: 0 0 5px;    
  39.      padding: 5px;    
  40.      width: 63px;    
  41.      color: #f00;    
  42.      font-size: 14px;    
  43.  }    
  44.  </style>    
  45.  <div class="wf-main" id="wf-main">    
  46.      <div class="wf-cld"><h2 style="color:#f50">1、瀑布流</h2></div>    
  47.      <div class="wf-cld">2<br>2</div>    
  48.      <div class="wf-cld">3<br>4<br>4</div>    
  49.      <div class="wf-cld">4<br>4<br>4<br>4</div>    
  50.      <div class="wf-cld">5<br>4<br>4<br>4<br>4</div>    
  51.      <div class="wf-cld">6<br>4<br>4<br>4<br>4<br>4</div>    
  52.      <div class="wf-cld">7<br>4<br>4<br>4<br>4<br>4<br>4</div>    
  53.      <div class="wf-cld">8<br>4<br>4<br>4<br>4<br>4<br>4<br>4</div>    
  54.      <div class="wf-cld">9<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4</div>    
  55.      <div class="wf-cld">10<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4</div>    
  56.      <div class="wf-cld">18<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4</div>    
  57.      <div class="wf-cld">19<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4</div>    
  58.      <div class="wf-cld">20<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4</div>    
  59.      <div class="wf-cld" id="wf-inner">    
  60.          <h2 class="inner title">21、內(nèi)部瀑布流</h2>    
  61.          <div class="inner">21-1<br>1</div>    
  62.          <div class="inner">21-2</div>    
  63.          <div class="inner">21-3</div>    
  64.          <div class="inner">21-4</div>    
  65.          <div class="inner">21-5<br></div>    
  66.          <div class="inner">21-6</div>    
  67.          <div class="inner">21-7</div>    
  68.          <div class="inner">21-8</div>    
  69.          <div class="inner">21-9</div>    
  70.      </div>    
  71.      <div class="wf-cld">22<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4</div>    
  72.      <div class="wf-cld">23<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4</div>    
  73.      <div class="wf-cld">24<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4</div>    
  74.      <div class="wf-cld">11<br>2<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4</div>    
  75.      <div class="wf-cld">12<br>2<br>2<br>3<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4</div>    
  76.      <div class="wf-cld">13<br>4<br>4<br>3<br>3<br>1<br>2<br>4<br>4<br>4<br>4<br>4<br>4</div>    
  77.      <div class="wf-cld">14<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4</div>    
  78.      <div class="wf-cld">15<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4</div>    
  79.      <div class="wf-cld">16<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4</div>    
  80.      <div class="wf-cld">17<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4<br>4</div>    
  81.  </div>    
  82.  <script type="text/javascript">    
  83.  function Waterfall(param){    
  84.      this.id = typeof param.container == 'string' ? document.getElementById(param.container) : param.container;    
  85.      this.colWidth = param.colWidth;    
  86.      this.colCount = param.colCount || 4;    
  87.      this.cls = param.cls && param.cls != '' ? param.cls : 'wf-cld';    
  88.      this.init();    
  89.  }    
  90.  Waterfall.prototype = {    
  91.      getByClass:function(cls,p){    
  92.          var arr = [],reg = new RegExp("(^|\\s+)" + cls + "(\\s+|$)","g");    
  93.          var nodes = p.getElementsByTagName("*"),len = nodes.length;    
  94.          for(var i = 0; i < len; i++){    
  95.              if(reg.test(nodes[i].className)){    
  96.                  arr.push(nodes[i]);    
  97.                  reg.lastIndex = 0;    
  98.              }    
  99.          }    
  100.          return arr;    
  101.      },    
  102.      maxArr:function(arr){    
  103.          var len = arr.length,temp = arr[0];    
  104.          for(var ii= 1; ii < len; ii++){    
  105.              if(temp < arr[ii]){    
  106.                  temp = arr[ii];    
  107.              }    
  108.          }    
  109.          return temp;    
  110.      },    
  111.      getMar:function(node){    
  112.          var dis = 0;    
  113.          if(node.currentStyle){    
  114.              dis = parseInt(node.currentStyle.marginBottom);    
  115.          }else if(document.defaultView){    
  116.              dis = parseInt(document.defaultView.getComputedStyle(node,null).marginBottom);    
  117.          }    
  118.          return dis;    
  119.      },    
  120.      getMinCol:function(arr){    
  121.          var ca = arr,cl = ca.length,temp = ca[0],minc = 0;    
  122.          for(var ci = 0; ci < cl; ci++){    
  123.              if(temp > ca[ci]){    
  124.                  temp = ca[ci];    
  125.                  minc = ci;    
  126.              }    
  127.          }    
  128.          return minc;    
  129.      },    
  130.      init:function(){    
  131.          var _this = this;    
  132.          var col = [],//列高    
  133.              iArr = [];//索引    
  134.          var nodes = _this.getByClass(_this.cls,_this.id),len = nodes.length;    
  135.          for(var i = 0; i < _this.colCount; i++){    
  136.              col[i] = 0;    
  137.          }    
  138.          for(var i = 0; i < len; i++){    
  139.              nodes[i].h = nodes[i].offsetHeight + _this.getMar(nodes[i]);    
  140.              iArr[i] = i;    
  141.          }                
  142.          for(var i = 0; i < len; i++){    
  143.              var ming = _this.getMinCol(col);    
  144.              nodes[i].style.left = ming * _this.colWidth + "px";    
  145.              nodes[i].style.top = col[ming] + "px";    
  146.              col[ming] += nodes[i].h;    
  147.          }    
  148.               
  149.          _this.id.style.height = _this.maxArr(col) + "px";    
  150.      }    
  151.  };    
  152.  new Waterfall({    
  153.      "container":"wf-inner",    
  154.      "colWidth":77,    
  155.      "colCount":3,    
  156.      "cls":"inner"   
  157.  
  158.  });    
  159.  new Waterfall({    
  160.      "container":"wf-main",    
  161.      "colWidth":244,    
  162.      "colCount":4    
  163.  
  164.  });    
  165.  
  166.  </script>    
  167.  
  168.  </body>    
  169.  
  170.  </html>   
  171.  
[圖片] 瀑布流.jpg
【編輯推薦】

 

責(zé)任編輯:張偉 來(lái)源: 開(kāi)源中國(guó)社區(qū)
相關(guān)推薦

2024-08-19 14:01:00

2013-02-19 10:24:47

瀑布流布局CSS

2024-09-03 17:04:15

前端算法布局

2021-08-09 07:26:33

瀑布流布局代碼

2015-02-26 18:09:29

WaterFall V瀑布流Dynamic Gri

2015-02-02 16:21:26

android瀑布流圖片加載

2020-06-15 18:00:36

transformbannerJavascript

2015-05-07 15:13:22

JS實(shí)現(xiàn)JQueryJQuery

2022-04-14 15:53:12

開(kāi)發(fā)瀑布流組件

2012-06-15 09:35:42

JavaScript

2024-03-19 08:15:09

云原生云計(jì)算容器

2013-04-03 15:45:51

Android瀑布流android_wat

2009-09-24 13:12:20

Hibernate原生

2022-04-06 18:29:58

CSSJS輸入框

2021-02-11 13:56:21

JSweb插件

2021-12-03 07:27:30

全景瀏覽Three.js

2010-08-24 10:11:26

DIV標(biāo)簽

2021-08-05 18:38:14

青云科技云原生容器

2009-04-10 09:43:00

Java輸出流異常

2023-05-10 09:04:10

promise場(chǎng)景業(yè)務(wù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 日韩av在线不卡 | 精品国产一区二区三区久久 | 91看片免费| 欧美精品在线观看 | 久久黄色网 | 久久性| 精品1区2区| 成人国产在线视频 | 久久成人18免费网站 | 日韩高清一区二区 | 免费成人在线网 | 欧美精品成人一区二区三区四区 | 91在线看网站 | 国产成人叼嘿视频在线观看 | 亚洲一二三区免费 | 看片国产 | 91精品国产91久久久久久最新 | 亚洲成人网在线 | 免费观看a级毛片在线播放 黄网站免费入口 | 亚洲精品黑人 | 99影视| 不卡在线视频 | 亚洲午夜精品一区二区三区他趣 | 国产精品久久一区二区三区 | 第一福利社区1024 | 99精品欧美一区二区三区 | 亚洲国产日韩欧美 | 日韩在线播放一区 | 亚洲高清视频一区 | 一区二区三区精品视频 | 欧美三区在线观看 | 伊人网在线播放 | 中文字幕亚洲在线 | 91视频免费观看 | 一区二区视频在线观看 | 成人伊人 | av午夜激情 | 国产在线拍偷自揄拍视频 | 欧美在线观看免费观看视频 | 成人毛片视频在线播放 | 亚洲午夜精品一区二区三区 |