Vue3页面自适应,表格滚动高度

news/2024/7/10 1:46:18 标签: 前端, vue, typescript
适用场景:在网页的表格中我们需要获取页面的还可以用的高度来为表格做滚动的时候就需要使用响应高度,可以使用原生的calc来计算,但是calc有个缺陷就是,你要去计算多个盒子的高度,使用下面的代码就可以直接获取当前元素到底部的距离,然后减去总高度即可,是相当的方便 。

TS端代码:

import { ref , onMounted } from "vue";

/*
*
* Vue3计算剩余高度
*
*/
export default function () {

    //在Init的时候先行调用,然后在监听窗口的变化,保证是最新的宽高度
    onMounted(()=>{
        setWindowResize();
        window.addEventListener('resize',setWindowResize)
    });

    //测算基点
    let basePoint = ref();

    //元素测试盒子
    let elementWidth = ref(0);

    //窗口的高度
    let windowHeight = ref(0);


    const setWindowResize = function () {
        elementWidth.value = basePoint.value.getBoundingClientRect().top;
        windowHeight.value = window.innerHeight
    }

    return { basePoint , elementWidth , windowHeight };
}

页面端代码:

<script setup lang="ts">
  import useCommon from '@/common/useCommon';

  const  { basePoint , windowHeight , elementWidth } = useCommon();


</script>

<template>
   <div id="app">
     <div  style="height: 30px;background-color: rosybrown">{{ elementWidth }}</div>
     <div ref="basePoint"></div>
     <div :style="`height:calc( ${ windowHeight } - ${ elementWidth }px);background-color: tan`"></div>
   </div>
</template>

<style>
  html, body, #app {
    height: 100vh;
    width: 100vw;
    margin: 0;
    padding: 0;
    background-color: rebeccapurple;
  }
</style>

运行效果图:


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

相关文章

数据结构之动态查找表

数据结构之动态查找表 1、二叉排序树1.1、二排序树的定义1.2、二叉排序树的查找过程1.3、在二叉排序树中插入结点的操作1.4、在二叉排序树中删除结点的操作 2、平衡二叉树2.1、平衡二叉树上的插入操作2.2、平衡二叉树上的删除操作 3、B_树 数据结构是程序设计的重要基础&#x…

微信小程序 安卓/IOS兼容问题

一、背景 在开发微信小程序时&#xff0c;不同的手机型号会出现兼容问题&#xff0c;特此记录一下 二、安卓/IOS兼容问题总结 2.1、new Date()时间转换格式时&#xff0c;IOS不兼容 问题&#xff1a;在安卓中时间格式2024-1-31 10:10:10&#xff0c;但是在iOS中是不支持 &q…

常用的数据库SQL语句使用大全

SQL&#xff08;Structured Query Language&#xff0c;结构化查询语言&#xff09;是用于管理和操作关系数据库管理系统的标准编程语言。SQL语句可以执行各种操作&#xff0c;如查询、更新、插入和删除数据库中的数据。下面详细介绍SQL语句的分类和使用方法&#xff1a; 1. S…

关于破解IDEA后启动闪退的问题

问题描述&#xff1a;2023.1启动不了&#xff0c;双击桌面图标&#xff0c;没有响应。 解决办法&#xff1a; 打开C:\Users\c\AppData\Roaming\JetBrains\IntelliJIdea2023.1\idea64.exe.vmoptions 这个文件。 内容如下所示&#xff1a; 删除红框的数据以后&#xff0c;再登录…

PaddleDetection学习4——使用Paddle-Lite和OpencCV在 Android 上实现实时的人脸检测(java)

使用Paddle-Lite在 Android 上实现人脸检测 1 环境准备2. 部署步骤2.1 下载PaddleLite-android-demo2.2 运行face_detection_demo项目3 导入OpenCV进行优化3.1 Android Studio配置OpenCV3.2 预处理代码3.3 后处理代码3.4 优化结果1 环境准备 参考前一篇在 Android 上使用Paddl…

宠物商业数据分析

一、宠物热销品类分布 欧睿国际更有一份数据表明&#xff0c;宠物食品在所有“它经济”中占比是最大&#xff0c;仅仅是猫狗食品就达到了59.1%&#xff0c;增速也远高于其他宠物用品。 2018年&#xff0c;中国就已经有超7700万独居成年人口&#xff0c;国内养宠主力军中90后占…

【fabrc.js】 创建组(fabric.Group)类型的 3 种方式

方法1&#xff1a;先选中已存在画布内多个图形&#xff0c;然后拿到ActiveSelection数据&#xff0c;随后调用 toGroup() 即可将选中的图形创建为组对象&#xff1b;方法2&#xff1a;new fabric.Group() 获取group实例&#xff0c;通过new的时候传入图形参数[o1,o2...]&#x…

一文速学-selenium高阶操作连接已存在浏览器

前言 不得不说selenium不仅在自动化测试作为不可或缺的工具&#xff0c;在数据获取方面也是十分好用&#xff0c;能够十分快速的见到效果&#xff0c;这都取决于selenium框架的足够的灵活性&#xff0c;甚至在一些基于web端的自动化办公都十分有效。 通过selenium连接已经存在…