21xrx.com
2024-09-19 09:49:39 Thursday
登录
文章检索 我的文章 写文章
使用JavaScript创建瀑布流
2023-06-15 16:54:04 深夜i     --     --
JavaScript 瀑布流 布局

在当今的网页设计中,瀑布流是一个非常受欢迎和实用的布局方式。瀑布流布局可以让网页内容更加美观、自然而有序地展示出来,受到用户的青睐。如果你也想深入了解瀑布流布局,并学习如何使用JavaScript代码创建它,那么你来到了正确的地方。

首先,我们需要明确一点,就是瀑布流的布局是由纵向排列的多列组成的。每一列的高度并不相等,每次加入新的元素时,都会放到当前高度最小的那一列最下面。这个操作本质上是一个动态的分配过程。

现在,我们来看一下具体的代码实现。首先,我们需要定义一个函数,用来确定当前列的高度。这个函数的实现如下:


function getColumnHeight(column) {

 var arr = Array.from(column.children);

 var height = 0;

 arr.forEach(item => {

  height += item.clientHeight;

 });

 return height;

}

然后,我们定义一个函数`placeBlock`,用来向瀑布流中添加新元素。


function placeBlock(block) {

 var columns = Array.from(document.querySelectorAll('.column'));

 columns.sort((a, b) => getColumnHeight(a) - getColumnHeight(b));

 columns[0].appendChild(block);

}

最后,我们需要给每个新元素设置一个绝对定位,并设置top和left属性,使得它们能够自动对齐。


var num = 1;

function addBlock() {

 var block = document.createElement('div');

 block.className = 'block';

 block.innerText = 'Block ' + num;

 num++;

 placeBlock(block);

 block.style.top = getColumnHeight(block.parentNode) - block.clientHeight + 'px';

 block.style.left = block.parentNode.offsetLeft + 'px';

}

现在,我们就完成了通过JavaScript代码创建瀑布流的操作。接下来,我们通过这篇文章总结出以下3个

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复