基于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.mfbz.cn/a/495571.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【学习】企业申请DCMM原来有这么多的好处

DCMM&#xff0c;即数据管理能力成熟度评估模型&#xff08;Data management Capability Maturity Model&#xff09;&#xff0c;是我国在数据管理领域首个正式发布的国家标准。DCMM的核心目的是帮助企业利用先进的数据管理理念和方法&#xff0c;建立和评价自身的数据管理能力…

基于springboot实现蜗牛兼职网平台系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现蜗牛兼职网平台系统演示 摘要 随着科学技术的飞速发展&#xff0c;社会的方方面面、各行各业都在努力与现代的先进技术接轨&#xff0c;通过科技手段来提高自身的优势&#xff0c;蜗牛兼职网当然也不能排除在外。蜗牛兼职网是以实际运用为开发背景&#xff…

基于单片机超声波停车位自动检测系统设计

**单片机设计介绍&#xff0c;基于单片机超声波停车位自动检测系统设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机超声波停车位自动检测系统设计概要主要涵盖了利用超声波传感器和单片机技术实现停车位自动检测与…

三翼鸟:创牌仅3年,2023场景交易额超51亿

文 | 智能相对论 作者 | 沈浪 3月27日晚间&#xff0c;海尔智家发布了2023年报。财报显示&#xff0c;2023年海尔智家实现营收2614.28亿元&#xff0c;同比增长7.33%&#xff1b;经营利润169.21亿元&#xff0c;同比增长15.8%&#xff1b;归母净利润165.97亿元&#xff0c;同…

科学高效备考2024年汉字小达人:历年真题详细解析-古诗文专题10

距离2024年第11届汉字小达人比赛还有七个多月的时间&#xff0c;如何利用这段时间有条不紊地备考呢&#xff1f;我的建议是两手准备&#xff1a;①把小学1-5年级的语文课本上的知识点熟悉&#xff0c;重点是字、词、成语、古诗。阅读理解不需要。②把历年真题刷刷熟&#xff0c…

c++的学习之路:5、类和对象(1)

一、面向对象和面向过程 在说这个定义时&#xff0c;我就拿c语言举例&#xff0c;在c语言写程序的时候&#xff0c;基本上就是缺什么函数&#xff0c;就去手搓一个函数&#xff0c;写的程序也只是调用函数的&#xff0c;而c就是基于面向对象的开发&#xff0c;他关注的不再是单…

<QT基础(3)>QLineEdit使用笔记

LineEdit 这次要用的是两个功能&#xff1a;初始化展示参数值&#xff0c;修改参数值。 初始化 将l_num的默认值显示 ui.lineEdit->setText(QString::number(l_num));信号 textChanged() 文本发生改变textEdited() 文本编辑信号cursorPositionChanged(&#xff09;光标发…

【字节二面】SpringBoot可以同时处理多少请求

目录 一、示例代码二、那么springboot可以处理多少请求&#xff1f;三、maxConnections、maxThreads、acceptCount的关系 一、示例代码 RestController Slf4j public class RequestController {GetMapping("/test")public String test(HttpServletRequest request) …

jsonpath和json数据(序列化eval()、反序列化loads())及断言处理(断言封装)

jsonpath&#xff1a;对json串进行搜索 安装jsonpath 安装&#xff1a;pip install jsonpath 导入&#xff1a; from jsonpath import jsonpath jsonpath能通过简单的方式就能提取给定JSON中的字段。 jsonpath官方地址&#xff1a;https://goessner.net/articles/JsonPath/ 在…

Python-VBA编程500例-022(入门级)

最长AB子串(Longest AB Alternating Substring)(或称为最长XY出现次数相同的子字符串)这个问题看似是一个比较抽象的编程问题&#xff0c;但在实际应用场景中&#xff0c;它可以用来解决一系列涉及平衡性和重复模式的实际问题。常见应用场景有&#xff1a; 1、DNA或RNA序列分析…

Obsidian插件:增加目录栏 flating toc

一、插件介绍 增加目录栏 插件市场搜索 flating toc安装即可 二、使用 写文档时候可以看到左边默认出现目录 可以自己配置一些相关设置 最后也可以安装一下插件样式设置插件&#xff0c;自己按照自己喜好调整

怎么搭建一个蛋糕店微信小程序_打造你的专属蛋糕店微信小程序

甜蜜满溢&#xff0c;一键尽享——打造你的专属蛋糕店微信小程序 在这个快节奏的时代&#xff0c;我们总是在寻找一种简单、快捷的方式来满足自己的味蕾。想象一下&#xff0c;当你忙碌了一天&#xff0c;疲惫不堪&#xff0c;突然想吃上一口美味的蛋糕&#xff0c;却又不想费…

使用GPU加速FLUENT计算

1.软件配置 一台具有Nvidia显卡的电脑 确保电脑正确安装有显卡驱动 可通过cmd窗口输入“nvidia-smi”命令&#xff0c;若看到下述窗口则说明显卡驱动安装正确。 安装最佳适配的CUDA版本&#xff0c;也可安装低版本CUDA驱动。 同样可通过cmd窗口输入“nvidia-smi”命令&#x…

关于移动视频-无线图传产品中的录像-云端录像-录像计划等说明

关于4G执法记录仪-智能安全帽-布控球-4GDVR等4G/5G图传产品中的录像机制 录像通常可保存在如下三个地方&#xff0c; 1&#xff09;前端设备&#xff0c;例如执法仪内部的TF卡、DVR里面的SD卡或者硬盘&#xff1b;需要通过USB接上位机/采集站导出&#xff0c;或者手工上传到平…

速成软件书:真的是神器吗?

那些声称几天能让你精通软件的书籍通常是几乎不可信的。学习任何一项技能都需要时间、耐心和实践&#xff0c;不能依靠几天的学习就能达到精通的水平。这样的书籍往往宣传夸大&#xff0c;吹嘘简单快速的学习方法&#xff0c;实际效果可能不令人满意。 要想真正掌握一项技能&am…

几款主流好用的markdown编辑器介绍

当然&#xff0c;以下是关于几款主流好用的 Markdown 编辑器介绍的博客分享&#xff1a; 几款主流好用的 Markdown 编辑器介绍 在写作、笔记、博客等文档编辑过程中&#xff0c;Markdown 已经成为了许多人的首选格式。为了更高效地编写 Markdown 文档&#xff0c;选择一款适合…

【功能实现】新年贺卡(蓝桥)

题目分析&#xff1a; 想要实现一个随机抽取功能 功能拆解&#xff1a;题目给了数组&#xff0c;我们采用生成随机数的方式&#xff0c;随机数作为数组的索引值访问数组的值。 并返回获取到的值&#xff0c;将获取到的值插入到页面中。 document.addEventListener(DOMConten…

TouchGFX之画布

一、画布渲染器 画布控件渲染器&#xff08;Canvas Widget Renderer&#xff0c;以下简称CWR&#xff09;是强大的多功能TouchGFX插件&#xff0c;在使用相对较小的存储空间的同时保持高性能&#xff0c;可提供平滑、抗锯齿效果良好的几何图形绘制。TouchGFX使用CWR可绘制复杂…

Redis命令-String命令

4.3 Redis命令-String命令 String类型&#xff0c;也就是字符串类型&#xff0c;是Redis中最简单的存储类型。 其value是字符串&#xff0c;不过根据字符串的格式不同&#xff0c;又可以分为3类&#xff1a; string&#xff1a;普通字符串int&#xff1a;整数类型&#xff0…

【正点原子FreeRTOS学习笔记】————(14)事件标志组

这里写目录标题 一、事件标志组简介&#xff08;了解&#xff09;二、事件标志组相关API函数介绍&#xff08;熟悉&#xff09;三、事件标志组实验&#xff08;掌握&#xff09; 一、事件标志组简介&#xff08;了解&#xff09; 事件标志位&#xff1a;用一个位&#xff0c;来…
最新文章