微信原生小程序构建表格模板控件

news/2024/7/20 2:33:20 标签: 微信, 小程序, web app

在这里插入图片描述
导语

在原生微信小程序开发中,有时候会遇到需要通过表格来呈现一定的数据,尽管在移动端,使用表格来呈现数据,并不是常见的,但是也保不齐会遇到这样的需求,然而在原生微信小程序中,也 并没有提供 原生的 table表格类标签供我们使用,这时候一般让人很无头绪,但是总要有人去先驱性的造轮子,经过参考大量社区中知识点的思路,还是东拼西凑的实现了一套表格类的控件。

先上预览图,供大家赏识:

在这里插入图片描述


在这里插入图片描述

注明:图二中,显得拥挤是因为我需求就是需要展示这么多数据,并且要一屏显示完,可自行依据业务需求调整。


上干货:html代码

<view class="table__box">
  <scroll-view class="table__scroll" scroll-y scroll-x style="height:100%;">
    <view class="table__scroll__view">
      <view class="table__header">
        <view class="table__header__item" wx:for="{{Rainfallheadtitle}}" wx:key="index">{{item.title}}</view>
      </view>
      <view class="table__content">
        <view class="table__content__line" wx:for="{{RainfallItemdata}}" wx:key="index" wx:for-item="dataItem">
          <view class="table__content__line__item" data-SiteDetails="{{dataItem}}" bindtap="viewdetail">{{dataItem.name}}</view>
          <view class="table__content__line__item">{{dataItem.time}}</view>
          <view class="table__content__line__item">{{dataItem.district}}</view>
          <view class="table__content__line__item">{{dataItem.DRP}}mm</view>
        </view>
      </view>
    </view>
  </scroll-view>
</view>

说明: html 节点,根据后端返回 list 数据 wx:for 循环迭代生成出来的,表头同理

    Rainfallheadtitle: [
      { title: "站点名" },
      { title: "时间" },
      { title: "行政区" },
      { title: "降雨量" },
    ],
    RainfallItemdata: [],

SCSS:部分

  .table__box {
    width: 100%;
    height: auto;
    box-sizing: border-box;
    position: relative;
    z-index: 1;
    border: 1px solid #E4E4E4;

    .table__scroll {
      overflow: hidden;
      height: 100% !important;
      background: #FFF;

      .table__header {
        width: 100%;
        position: sticky;
        top: 0;
        z-index: 1;
        display: flex;
        /* display: grid; 网格布局 */
        /* grid-auto-flow 属性控制自动放置的项目如何插入网格中 */
        /* column	通过填充每一列来放置项目 */
        grid-auto-flow: column;
        font-size: 26rpx;
        font-weight: bold;
        color: #333333;
        background: #F4F6FF;


        .table__header__item {
          display: flex;
          align-items: center;
          justify-content: center;
          text-align: center;
          box-sizing: border-box;
          background: #F4F6FF;
          width: 55%;
          height: 60rpx;
          position: relative;
          z-index: 888;
          border: 1rpx solid #E4E4E4;
          border-left: 0;
          border-top: 0;

          .timeicon {
            padding-left: 10rpx;
            color: #07b3f5;
            font-weight: bold;
            font-size: 35rpx;
          }
        }

        .table__header__item:nth-child(n) {
          width: 250rpx;
          position: sticky;
          left: 0;
          z-index: 999;
        }
      }

      .table__content {
        background-color: #fff;
        /* 这是兼容 iPhone x */
        padding-bottom: 10rpx;
        margin-bottom: constant(safe-area-inset-bottom);
        margin-bottom: env(safe-area-inset-bottom);

        .table__content__line {
          width: 100%;
          display: flex;
          grid-auto-flow: column;
          position: relative;
        }

        .table__content__line__item {
          display: flex;
          align-items: center;
          justify-content: center;
          text-align: center;
          box-sizing: border-box;
          background-color: #fff;
          height: 80rpx;
          border: 1rpx solid #E4E4E4;
          border-left: 0;
          border-top: 0;
          font-size: 26rpx;
        }

        .table__content__line__item:nth-child(n) {
          width: 250rpx;
          position: sticky;
          left: 0;
        }

        .table__content__line__item:nth-child(1) {
          color: rgb(25, 215, 240);
        }
        .table__content__line__item:nth-child(3) {
          font-weight: bold;
          color: rgb(78, 142, 182);
        }
      }
    }
  }

随手记下的一笔,希望能帮到你,如果你有更好地方案,记得留在评论区开源哦🤭,让我也见识见识。


🚵‍♂️ 博主座右铭:向阳而生,我还在路上!
——————————————————————————————
🚴博主想说:将持续性为社区输出自己的资源,同时也见证自己的进步!
——————————————————————————————
🤼‍♂️ 如果都看到这了,博主希望留下你的足迹!【📂收藏!👍点赞!✍️评论!】
——————————————————————————————


http://www.niftyadmin.cn/n/5209798.html

相关文章

Nginx 配置错误导致的漏洞

目录 1. CRLF注入漏洞 Bottle HTTP头注入漏洞 2.目录穿越漏洞 3. http add_header被覆盖 本篇要复现的漏洞实验有一个网站直接为我们提供了Docker的环境&#xff0c;我们只需要下载下来就可以使用&#xff1a; Docker环境的安装可以参考&#xff1a;Docker安装 漏洞环境的…

【ChatGLM2-6B】Docker下部署及微调

【ChatGLM2-6B】小白入门及Docker下部署 一、简介1、ChatGLM2是什么2、组成部分3、相关地址 二、基于Docker安装部署1、前提2、CentOS7安装NVIDIA显卡驱动1&#xff09;查看服务器版本及显卡信息2&#xff09;相关依赖安装3&#xff09;显卡驱动安装 2、 CentOS7安装NVIDIA-Doc…

LiveGBS流媒体平台GB/T28181功能-查看国标设备会话列表直播会话、回放会话、下载会话、对讲会话

LiveGBS流媒体平台GB/T28181功能-查看国标设备会话列表直播会话、回放会话、下载会话、对讲会话 1、会话列表2、会话类型3、搭建GB28181视频直播平台 1、会话列表 LiveGBS-> 国标设备-》点击在线状态 点击会话列表 2、会话类型 下拉会话类型可以看到 直播会话、回放会话、…

前端 HTML 和 JavaScript 的基础知识有哪些?

前端开发是Web开发的一个重要领域&#xff0c;涉及到HTML&#xff08;Hypertext Markup Language&#xff09;和JavaScript两个主要的技术。HTML用于定义网页的结构和内容&#xff0c;而JavaScript用于实现网页的交互和动态效果。以下是前端HTML和JavaScript的基础知识&#xf…

AI制作的《大多数普通女孩的一生》——公开教程和工作流

内容来源&#xff1a;JiamigouCn ​这周由AI制作的《大多数普通女孩的一生》&#xff0c;在抖音爆火&#xff0c;获得新华网转发。到目前为止&#xff0c;全网还没有公开教程和工作流&#xff0c;需要花费800-2000购买。 本着AI社区共享原则&#xff0c;我委托公众号“楚思智能…

Xilinx Zynq-7000系列FPGA实现视频拼接显示,提供两套工程源码和技术支持

目录 1、前言免责声明 2、相关方案推荐FPGA图像处理方案FPGA视频拼接叠加融合方案推荐 3、设计思路详解Video Mixer介绍 4、工程代码1&#xff1a;2路视频拼接 HDMI 输出PL 端 FPGA 逻辑设计PS 端 SDK 软件设计 5、工程代码2&#xff1a;4路视频拼接 HDMI 输出PL 端 FPGA 逻辑设…

SELinux refpolicy详解(2)

接前一篇文章:SELinux refpolicy详解(1) 本文内容引自: Documentation SELinuxProject/refpolicy Wiki GitHub 4. 入门指南 文档是参考策略的主要目标之一。入门指南(https://github.com/SELinuxProject/refpolicy/wiki/GettingStarted)提供了有关编写参考策略模块的…

揭秘!SpireCV如何实现低延时推流、视频保存!

引言 视频推流是指将实时的音视频数据通过网络传输到服务器或其他终端设备的过程。 在无人机上则是通过搭载摄像头或录像设备&#xff0c;通过无线网络将实时拍摄到的视频数据传输到地面站或其他终端设备&#xff0c;使操作人员能够实时监视无人机所处位置的环境&#xff0c;…