当前位置: 首页 > web >正文

css面板视觉高度

css面板视觉高度

touch拖拽

在手机端有时候会存在实现touch上拉或者下拉的样式操作

此功能实现可以参考:

https://blog.csdn.net/u012953777/article/details/147465162?spm=1011.2415.3001.5331

面板视觉高度

前提需求:

1、展示端分为两部分:上面展示一部分内容、下一部分展示面板

2、通过拖拉下部分面板,上一部分高度需要同步的变化

3、如何准确的获取当前的视觉高度,从而执行上部分精准的变化

核心代码实现如下:

//获取当前面板的实际视觉高度
const getPanelVisualHeight = () =>{const rect = panel.getBoundingClientRect();const visualHeight = window.innerHeight - rect.top;return visualHeight;
}
  • 详细解释:

第一句:const rect = panel.getBoundingClientRect();

panel是页面上的一个DOM 元素,比如你选中的一个

getBoundingClientRect() 是 DOM 提供的一个 API,它返回一个矩形对象,里面包含了元素相对于视口(也就是浏览器可视区域左上角)的位置信息,比如:

  • rect.top:元素上边到视口上边缘的距离(单位是像素)

  • rect.left:元素左边到视口左边缘的距离

  • rect.width:元素的宽度

  • rect.height:元素的高度

  • rect.bottom:元素下边到视口上边缘的距离

  • rect.right:元素右边到视口左边缘的距离

注意:
getBoundingClientRect() 返回的是相对可视区域的,不是相对整个页面的!

比如:

属性例子解释
rect.top = 100代表这个元素距离浏览器顶部 100px
rect.left = 50代表元素距离浏览器左边 50px

第二句:const visualHeight = window.innerHeight - rect.top;

  • window.innerHeight 是浏览器可视区域的高度(不包括滚动条和浏览器外壳)。

  • rect.top 是元素顶部到可视区顶部的距离。

所以:

window.innerHeight - rect.top

的意思是:

从元素的 top 位置到浏览器可视区底部的剩余空间高度

也就是说:

如果元素已经快贴到浏览器底部了,这个 visualHeight 会很小。

如果元素刚出现在视口顶部,visualHeight 会很大

http://www.xdnf.cn/news/2401.html

相关文章:

  • 爬虫技术入门:基本原理、数据抓取与动态页面处理
  • Git 全面解析:从核心概念到生态应用
  • setup和hold互卡问题剖析
  • 【NVM】管理不同版本的node.js
  • AOSP Android14 Launcher3——动画核心类QuickstepTransitionManager详解
  • Animate 中HTMLCanvas 画布下实现拖拽、释放、吸附的拼图游戏
  • Shell脚本-until语法结构
  • 哈希封装unordered_map和unordered_set的模拟实现
  • 纯净IP的优势:稳定性与安全性的结合
  • Ubuntu22.04/24.04 P104-100 安装驱动和 CUDA Toolkit
  • FISCO BCOS 智能合约开发详解
  • Unreal Engine 实现软件测试方案的仿真体验
  • Nacos简介—4.Nacos架构和原理三
  • 如何排查服务器中存在的后门程序
  • 基于RuoYi的WMS仓库管理系统源码级解决方案
  • SQL 处理重复数据之技巧(Techniques for Handling Duplicate Data with SQL)
  • 使用cmd来创建数据库和数据库表-简洁步骤
  • 对鸿蒙 Next 系统“成熟论”的深度剖析-优雅草卓伊凡
  • 基于ssm的图书管理借阅系统(全套)
  • chrony服务器(2)
  • html5:从零构建经典游戏-扫雷游戏
  • Git 使用教程
  • 矩阵系统源码搭建热门音乐功能板块开发,支持OEM
  • Redux-Saga vs Redux-Thunk
  • 【漫话机器学习系列】227.信息检索与数据挖掘中的常用加权技术(TF-IDF)
  • 【nvm管理多个 Node.js 版本】
  • LLM开发——基于DeepSeek R1 和 Qwen 构建智能检索增强生成系统
  • 博物馆除湿控湿保卫战:M-5J1R 电解除湿科技如何重塑文物守护的未来
  • Azure Devops - 尝试一下在Pipeline中使用Self-hosted Windows agent
  • Rust游戏开发全栈指南:从理论到实践的革新之路