JS实现瀑布流布局

瀑布流布局是一种常见的网页布局方式,可以实现页面内容的动态排列,使页面看起来更加美观。下面是一个简单的JS实现瀑布流布局的示例:

复制代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>瀑布流布局</title>
<style>
    .waterfall {
        column-count: 4;
        column-gap: 10px;
    }

    .item {
        margin-bottom: 10px;
    }
</style>
</head>
<body>
<div class="waterfall" id="waterfall">
</div>

<script>
    const waterfall = document.getElementById('waterfall');

    const data = [
        'https://via.placeholder.com/150',
        'https://via.placeholder.com/200',
        'https://via.placeholder.com/250',
        'https://via.placeholder.com/300',
        'https://via.placeholder.com/350',
        'https://via.placeholder.com/400',
        'https://via.placeholder.com/450',
        'https://via.placeholder.com/500',
    ];

    data.forEach((url) => {
        const item = document.createElement('div');
        item.className = 'item';
        const img = document.createElement('img');
        img.src = url;
        item.appendChild(img);
        waterfall.appendChild(item);
    });
</script>
</body>
</html>

在这个示例中,我们首先定义了一个包含图片链接的数组data,然后使用forEach方法遍历数组,创建div元素作为每个图片的容器,并设置其样式为item。然后创建img元素,设置其src属性为对应的图片链接,最后将img元素添加到div容器中,并将整个div容器添加到waterfall容器中。

通过这种方式,我们可以实现一个简单的瀑布流布局,使页面内容以多列的方式动态排列。你可以根据实际需求调整列数和间距等样式来实现不同的效果。

相关推荐
SuperEugene2 小时前
表单最佳实践:从 v-model 到自定义表单组件(含校验)
前端·javascript·vue.js
不会敲代码12 小时前
React性能优化:深入理解useMemo和useCallback
前端·javascript·react.js
YukiMori234 小时前
一个有趣的原型继承实验:为什么“男人也会生孩子”?从对象赋值到构造函数继承的完整推演
前端·javascript
摸鱼的春哥4 小时前
惊!黑客靠AI把墨西哥政府打穿了,海量数据被黑
前端·javascript·后端
小兵张健4 小时前
Playwright MCP 截图标注方案调研(推荐方案1)
前端·javascript·github
我叫黑大帅7 小时前
Vue3和Uniapp的爱恨情仇:小白也能懂的跨端秘籍
前端·javascript·vue.js
None3217 小时前
【NestJs】使用Winston+ELK分布式链路追踪日志采集
javascript·node.js
Qinana8 小时前
从代码到智能体:MCP 协议如何重塑 AI Agent 的边界
前端·javascript·mcp
Marshall1518 小时前
zzy-scroll-timer:一个跨框架的滚动定时器插件
前端·javascript
明月_清风10 小时前
打字机效果优化:用 requestAnimationFrame 缓冲高频文字更新
前端·javascript