基于js css的瀑布流demo

要实现照片按照瀑布流展示,写个小demo,记录下。

瀑布流实现思路如下:

  • CSS 弹性布局对 3 列按横向排列,对每一列内部按纵向排列

html代码:

<div class="content"></div>

 css代码:

.content {width: 100%;height: 100%;display: flex;justify-content: center;align-items: flex-start;
}

 js代码:

    const list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];const content = document.querySelector('.content');for (let i = 0; i < 3; i++) {const div = document.createElement('div');div.style.width = '210px';div.style.height = '100%';list.forEach(function (ele, index) {if (index % 3 == i) {const son = document.createElement('div')son.style.backgroundColor = randomColor();// 给盒子设置随机高度son.style.height = (Math.floor(Math.random() * (301 - 200)) + 200) + 'px';son.style.marginBottom = '10px';son.innerText = ele;div.appendChild(son);};});content.appendChild(div);};function randomColor() {var color = '#';for (var i = 0; i < 6; i++) {// 设置随机颜色color += Math.floor(Math.random() * 16).toString(16); // 生成0-F之间的随机十六进制字符};return color;};

运行之后效果图如👇所示 :

整体代码:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.content {width: 100%;height: 100%;display: flex;justify-content: center;align-items: flex-start;}</style>
</head><body><div class="content"></div><script>const list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];const content = document.querySelector('.content');for (let i = 0; i < 3; i++) {const div = document.createElement('div');div.style.width = '210px';div.style.height = '100%';list.forEach(function (ele, index) {if (index % 3 == i) {const son = document.createElement('div')son.style.backgroundColor = randomColor();// 给盒子设置随机高度son.style.height = (Math.floor(Math.random() * (301 - 200)) + 200) + 'px';son.style.marginBottom = '10px';son.innerText = ele;div.appendChild(son);};});content.appendChild(div);};function randomColor() {var color = '#';for (var i = 0; i < 6; i++) {// 设置随机颜色color += Math.floor(Math.random() * 16).toString(16); // 生成0-F之间的随机十六进制字符};return color;};</script>
</body>
</html>

 推荐文章👇  

 5 种瀑布流场景的实现原理解析 - 知乎   

 实现瀑布流布局的四种方法-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/575983.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

力扣 718. 最长重复子数组

题目来源&#xff1a;https://leetcode.cn/problems/maximum-length-of-repeated-subarray/description/ C题解&#xff08;思路来源代码随想录&#xff09;&#xff1a;动态规划 确定dp数组&#xff08;dp table&#xff09;以及下标的含义。dp[i][j] &#xff1a;以下标i - …

IDEA跑Java后端项目提示内存溢出

要设置几个地方&#xff0c;都试一下吧&#xff1a; 1、默认是700&#xff0c;我们设置大一点&#xff08;上次配置了这儿就解决了&#xff09; 2、 3、 4、-Xmx4g

Linux基础篇:解析Linux命令执行的基本原理

Linux 命令是一组可在 Linux 操作系统中使用的指令&#xff0c;用于执行特定的任务&#xff0c;例如管理文件和目录、安装和配置软件、网络管理等。这些命令通常在终端或控制台中输入&#xff0c;并以文本形式显示输出结果。 Linux 命令通常以一个或多个单词的简短缩写或单词…

前端-深入探讨网络面试题

第一关 请求-文件、数据、连接 文件类的请求&#xff1a;加载HTMl、CSS 数据&#xff1a; ajax请求&#xff08;基于HTTP&#xff0c;HTTP基于TCP&#xff09;&#xff0c;如何建立连接的&#xff08;三次握手&#xff0c;为什么不是两次或者四次&#xff09;&#xff0c;sock…

FL Studio21中文版包含哪些强大的内置工具?有哪些新功能

FL Studio21中文版是一款功能强大的数字音频工作站&#xff08;DAW&#xff09;&#xff0c;专为音乐制作人、作曲家和声音工程师设计。该版本提供了直观且易于使用的界面&#xff0c;让用户能够快速上手并创作出专业水准的音乐作品。无论是新手还是专业音乐制作人&#xff0c;…

鱼眼相机的测距流程及误差分析[像素坐标系到空间一点以及测距和误差分析]

由于最近在整理单目测距的内容&#xff0c;顺手也总结下鱼眼相机的测距流程和误差分析&#xff0c;如果有错误&#xff0c;还请不吝赐教。 参考链接: 鱼眼镜头的成像原理到畸变矫正&#xff08;完整版&#xff09; 相机模型总结&#xff08;针孔、鱼眼、全景&#xff09; 三维…

如何快速搭建一个ELK环境?

前言 ELK是Elasticsearch、Logstash和Kibana三个开源软件的统称&#xff0c;通常配合使用&#xff0c;并且都先后归于Elastic.co企业名下&#xff0c;故被简称为ELK协议栈。 Elasticsearch是一个实时的分布式搜索和分析引擎&#xff0c;它可以用于全文搜索、结构化搜索以及分…

零基础10 天入门 Web3之第1天

10 天入门 Web3 Web3 是互联网的下一代&#xff0c;它将使人们拥有自己的数据并控制自己的在线体验。Web3 基于区块链技术&#xff0c;该技术为安全、透明和可信的交易提供支持。我准备做一个 10 天的学习计划&#xff0c;可帮助大家入门 Web3&#xff1a; 想要一起探讨学习的…

鸿蒙OS开发实例:【Web网页】

背景 HarmonyOS平台通过Web控件可支持网页加载展示&#xff0c;Web在中是作为专项参考的。 本篇文章将从Android和iOS平台研发角度出发来实践学习API功能 说明 整个示例是以HarmonyOS开发文档网址作为加载目标页面布局增加了三个按钮“后退”&#xff0c;“前进”&#xff…

Linux 基础IO [缓冲区文件系统]

&#x1f493;博主CSDN主页:麻辣韭菜&#x1f493;   ⏩专栏分类&#xff1a;Linux知识分享⏪   &#x1f69a;代码仓库:Linux代码练习&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学习更多Linux知识   &#x1f51d; 目录 前言 一.Linux下一切皆文件 二.缓冲…

Redis、Mysql双写情况下,如何保证数据一致

Redis、Mysql双写情况下&#xff0c;如何保证数据一致 场景谈谈数据一致性三个经典的缓存模式Cache-Aside Pattern读流程写流程 Read-Through/Write-Through&#xff08;读写穿透&#xff09;Write behind &#xff08;异步缓存写入&#xff09; 操作缓存的时候&#xff0c;删除…

Mac添加和关闭开机应用

文章目录 mac添加和关闭开机应用添加开机应用删除/查看 mac添加和关闭开机应用 添加开机应用 删除/查看 打开&#xff1a;系统设置–》通用–》登录项–》查看登录时打开列表 选中打开项目&#xff0c;点击“-”符号