column多行布局瀑布流+横向布局的处理数组的方法

这篇具有很好参考价值的文章主要介绍了column多行布局瀑布流+横向布局的处理数组的方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

有个需求是商品的列表(类似于淘宝商品的左右列表展示往下),要实现瀑布流的形式去呈现,但是数据的列表的数组Array,是动态的获取;
实现的方案:

  • 方案一:通过float的形式来实现,但是会导致特殊的模块的边距不好判断与移动的情况;
  • 方案二:通过display:flex;的实现,得先固定宽高的(具体的实现不综述);
    具体的实现:点击翻看文章
  • 方案三:column 实现瀑布流主要依赖两个属性。

接下来主要的讲述的方案三的方法;
在我的需求中,选用方案三的实现,其中俩个属性:

  • column-count 属性,是分为多少列。
  • column-gap 属性,是设置列与列之间的距离。
// 对父元素进行设置
.item_box {
   margin: 10px;
   column-count: 3; // 默认列数2
   column-gap: 10px; // 列间距
}
.item {
   margin-bottom: 10px;
}

只需要简单的俩个属性即可实现,但是在这里存在一个问题;原本的横向读取数组的列表,变成纵向从左往右的形式读取,使得拿到的数组列表呈现不一致,针对这个问题;
我采取的方式是将获取到的数组Array,通过计算属性compouted(vue中的引用)的形式处理下;

// 处理数组的方法
const currenList = []; // 获取到的list
const cloGapList = this.getColumnsList(currenList, 2); // 返回处理后的数组,并渲染
// list 待处理的数组;columnsNum 列数
getColumnsList(list, columnsNum = 2) {
  const arrObject = {};
  for(let i = 0; i < columnsNum; i++) {
    arrObject[i] = []; // 创建空的对象数组
  }
  list.forEach((element, index) =>  arrObject[index%columnsNum].push(element));
  const cloGapList = [];
  for(let key in arrObject) {
    cloGapList.push(...arrObject[key])
  }
  return cloGapList;
},

实现的思想,就是将原本的数组,按照我们分列数的形式,进行分切再拼接成数组,呈现出来就是从左到右的横向排列;
当下能想到的一个小窍门,有更好的方案,期待得到反馈;;文章来源地址https://www.toymoban.com/news/detail-432284.html

到了这里,关于column多行布局瀑布流+横向布局的处理数组的方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 鸿蒙Harmony-线性布局(Row/Column)详解

    人生的下半场,做个简单的人,少与人纠缠,多看大自然,在路上见世界,在途中寻自己。往后余生唯愿开心健康,至于其他,随缘就好!  目录 一,定义 二,基本概念 三,布局子元素在排列方向上的间距 四,布局子元素在交叉轴上的对齐方式 4.1 Column容器内子元素在水平

    2024年02月01日
    浏览(42)
  • 记录--Vue3基于Grid布局简单实现一个瀑布流组件

    在学习Grid布局之时,我发现其是CSS中的一种强大的布局方案,它将网页划分成一个个网格,可以任意组合不同的网格,做出各种各样的布局,在刷某书和某宝首页时,我们发现其展示方式就是一种瀑布流,是一种流行的网站页面布局,视觉表现为参差不齐的多栏布局,随着页

    2024年02月05日
    浏览(61)
  • flex布局一行三个,显示多行

    效果: 代码

    2024年02月11日
    浏览(38)
  • css:横向滚动布局

    2024年02月16日
    浏览(36)
  • 【Java】表白墙终章-飞流直下的“甜言蜜语”-瀑布流式布局

    飞流直下三千尺! 改进之前: 丑 丑 用户之间无差别 消息先来先到 改进后: 美 美 添加导航栏左上角的身份显示(头像 + 用户名) 采用瀑布流的方式去排列消息 消息以卡片的形式显示(头像 + 用户名 + 日期 + 甜言蜜语) 先来后到 最新发布的排在最前 瀑布流布局的前提就

    2024年02月08日
    浏览(38)
  • Jetpack Compose布局控件Column、Row、Box 详解

    本篇文章介绍 Compose 的布局控件 Column 、 Row 、 Box ,在 Android XML 模式开发中,常用的布局控件有 LinearLayout 、 RelativeLayout 、 FrameLayout 以及 ConstraintLayout , Compose 没有延用之前的布局设计,而是提供了全新的布局控件,不仅实现了 XML 模式的相关功能并且更加灵活好用。 Compos

    2024年02月03日
    浏览(45)
  • 微信小程序 居中、居右、居底和横向、纵向布局,文字在图片中间,网格布局

    微信小程序居中、居右、横纵布局 1、水平垂直居中(相对父类控件) 方式一:水平垂直居中 父类控件:   //注意:这里的 height 写 100%会使得垂直居中可能会不生效 可能会有兼容问题 方式二:水平垂直居中(方式二推荐) 父类控件:position: relative; 子类控件: 方式三:水

    2024年02月14日
    浏览(58)
  • Css Flex 弹性布局中的换行与溢出处理方法

    Css Flex 弹性布局中的换行与溢出处理方法 CSS弹性布局(Flex)是CSS3中的一种新的布局方式,它能够帮助我们更加灵活地布局元素。在Flex弹性布局中,元素的布局仅依赖于父容器的设置,而不再需要复杂的相对或绝对定位。本文将详细介绍Flex布局中的换行与溢出处理方法,并

    2024年02月07日
    浏览(49)
  • 2022-11 CSS:flex布局父子宽度问题-小程序scrollView-div横向滚动字体超出隐藏-居中

    如上图第二行子元素宽度会跟随第一行宽度 解决方案: 对第二行设置: width: max-content; 使其宽度跟随自身内容 如上图,左侧宽高为112rpx,宽度不生效 解决方案: 对左侧图片设置宽高的同时, 设置最小宽高 效果如下: 例1:

    2024年02月09日
    浏览(57)
  • uniapp scroll-view横向滚动无效,scroll-view子元素flex布局不生效

    要素排查: 1.scroll-x属性需要开启,官方类型是Boolean,实际字符串也行。   2scroll-view标签需要给予一个固定宽度,可以是百分百也可以是固定宽度或者100vw。    3.子元素需要设置display: inline-block(行内块元素)属性,scroll-view需要设置white-space: nowrap(不换行) 当使用scroll

    2024年02月12日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包