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

动态查找滚动容器(通用方案)

需求:点击置顶按钮返回页面的顶部,涉及产生滚动条的元素不唯一的情况,如果确定滚动元素的情况,直接元素.scrollTop = 0 就实现置顶了

 也是查了一段时间,这个方法很赞,递归寻找滚动元素

步骤 1:判断元素是否有滚动条// 检查元素是否有垂直滚动条(我只用到了垂直)
function hasVerticalScrollbar(element) {return element.scrollHeight > element.clientHeight;
}
// 检查元素是否有水平滚动条
function hasHorizontalScrollbar(element) {return element.scrollWidth > element.clientWidth;
}步骤 2:遍历 DOM 树查找滚动容器function findScrollContainer(element) {if (!element) return window; // 默认返回 window// 递归向上查找第一个有滚动条的父元素while (element.parentElement) {element = element.parentElement;if (hasVerticalScrollbar(element) || hasHorizontalScrollbar(element)) {return element;}}return window; // 未找到则返回 window
}步骤 3:在 页面中应用引入findScrollContainer方法后
const currentElement = document.querySeletor(当前页面的元素)
const scrollElement = findScrollContainer(currentElement ) // 滚动元素
// 将滚动元素 置顶
scrollElement.scrollTo(
{top:0,behavior:'smooth' // 平滑滚动
}
)

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

相关文章:

  • 故障诊断模型评估——混淆矩阵,如何使样本量一致(上)
  • 深入浅出之STL源码分析8_三个指针
  • PostgreSQL 恢复信息函数
  • Android Exoplayer多路不同时长音视频混合播放
  • window 显示驱动开发-报告图形内存(一)
  • ElasticSeach快速上手笔记-入门篇
  • VScode 的插件本地更改后怎么生效
  • 嵌入式学习--江协51单片机day5
  • React百日学习计划——Deepseek版
  • 销量预测评估指标
  • 【工作记录】Kong Gateway 入门篇之部署及简单测试
  • mpegts.js 播放flv视频报错:PIPELINE_ERROR_DECODE: video decode error!
  • FlashInfer - 安装
  • 理解 Open vSwitch (OVS)
  • 一键转换上百文件 Word 批量转 PDF 软件批量工具
  • 大模型——Crawl4AI为 LLM 和 RAG 准备高质量网页数据
  • ‌Element UI 双击事件(@cell-dblclick 与 @row-dblclick)
  • 函数式方法的实现(JDK8+)
  • 洛谷 P3374 【模板】树状数组 1(树状数组解法)
  • C#高级编程:设计模式原则
  • 第28节:现代CNN架构-ResNet与残差连接
  • Android加固工具测评:易盾、顶象、360加固哪款更好用?
  • 【源码+文档+调试讲解】党员之家服务系统小程序1
  • 如何同步虚拟机文件夹
  • Linux精确列出非法 UTF-8 字符的路径或文件名
  • 从虚拟现实到混合现实:沉浸式体验的未来之路
  • 【TMFN】一种基于文本的多模态融合网络,具有多尺度特征提取和无监督对比学习,用于多模态情感分析
  • Day1 时间复杂度
  • 3.2 一点一世界
  • mysql8常用sql语句