原生JS实现响应式瀑布流布局_javascript技巧
程序员文章站
2022-04-01 21:02:43
...
原生JS实现的瀑布流布局,代码及demo代码地址:https://github.com/leozdgao/responsive_waterfall
Demo:http://leozdgao.github.io/demo/responsive_waterfall/
演示图:
核心代码:
responsive_waterfall.js
(function() { var Waterfall = function(opts) { var minBoxWidth; Object.defineProperty(this, 'minBoxWidth', { get: function() { return minBoxWidth; }, set: function(value) { if(value 1000) value = 1000; minBoxWidth = value; } }); opts = opts || {}; var containerSelector = opts.containerSelector || '.wf-container'; var boxSelector = opts.boxSelector || '.wf-box'; // init properties this.minBoxWidth = opts.minBoxWidth || 250; this.columns = []; this.container = document.querySelector(containerSelector); this.boxes = this.container ? Array.prototype.slice.call(this.container.querySelectorAll(boxSelector)) : []; // compose once in constructor this.compose(); // handle the image or something which might change size after loaded var images = this.container.querySelectorAll('img'), that = this; var clr; for (var i = 0; i 0) { // create column div this.columns = []; var width = (100 / num) + '%'; while(num--) { var column = document.createElement('div'); column.className = 'wf-column'; column.style.width = width; this.columns.push(column); this.container.appendChild(column); } } } // get the index of shortest column Waterfall.prototype.getMinHeightIndex = function() { if(this.columns && this.columns.length > 0) { var min = this.columns[0].clientHeight, index = 0; for (var i = 1; i -1) { var column = this.columns[columnIndex]; column.appendChild(elem); } } window.Waterfall = Waterfall; })()
以上所述就是本文给大家分享的全部内容了,希望能够对大家熟练使用javascript有所帮助。
推荐阅读
-
js实现瀑布流的一种简单方法实例分享_javascript技巧
-
纯js实现瀑布流展现照片(自动适应窗口大小)_javascript技巧
-
原生JavaScript+LESS实现瀑布流_javascript技巧
-
js实现仿百度瀑布流的方法_javascript技巧
-
原生JavaScript实现瀑布流布局_javascript技巧
-
纯js实现瀑布流展现照片(自动适应窗口大小)_javascript技巧
-
js实现仿百度瀑布流的方法_javascript技巧
-
原生JavaScript实现瀑布流布局_javascript技巧
-
详解javascript实现瀑布流列式布局_javascript技巧
-
js实现瀑布流的三种方式比较_javascript技巧