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

JS - 处理元素滚动

业务功能中时常有元素滚动的功能,现在就总结一下一些常用的事件。

一、定位滚动元素

做一切滚动操作之前都应该先定位到滚动元素,再做其他操作,如滚动顶部,获取滚动距离、禁止滚动等。

把以下代码复制粘贴到浏览器 Console 面板,敲一下回车。然后滚动滚动条就可以看到打印:

 function findscroller(element){element.οnscrοll=function () {console.log(element)}Array.from(element.children).forEach(findscroller)}findscroller(document.body)

二、添加滚动事件

找到滚动的元素之后就可以添加事件,如,滚动到顶部

1. 使用Window.scrollTo API
window.scrollTo({left: 0,top: 0,behavior: 'smooth'
})
2. 使用requestAnimationFrame
const scrollToTop = () => {let sTop = document.documentElement.scrollTop || document.body.scrollTopif (sTop > 0) {window.requestAnimationFrame(scrollToTop)window.scrollTo(0, sTop - sTop / 8)}
}

三、监听滚动事件

移除组件的时候记得卸载监听事件

 useEffect(() => {window.addEventListener('scroll', handleScroll);return () => {window.removeEventListener('scroll', handleScroll);};}, []);
http://www.lryc.cn/news/297070.html

相关文章:

  • JavaScript滚动事件
  • 4.0 Zookeeper Java 客户端搭建
  • C#既然数组长度不可改变,那么如何动态调整集合类型数组大小,以便添加或删除元素?
  • 3.1 Verilog 连续赋值
  • 【http】2、http request header Origin 属性、跨域 CORS、同源、nginx 反向代理、预检请求
  • LangChain pdf的读取以及向量数据库的使用
  • VUE学习——事件修饰符
  • 开放平台技术架构设计与实现的实战总结
  • 飞桨自然语言处理框架 paddlenlp的 trainer
  • SQL世界之命令语句Ⅲ
  • Snoop Version 2 Packet Capture File Format
  • 扩展说明: 指令微调 Llama 2
  • VUE 全局设置防重复点击
  • 备战蓝桥杯---动态规划(基础1)
  • CVE-2018-19518 漏洞复现
  • Python爬虫实战:抓取猫眼电影排行榜top100#4
  • Fiddler抓包工具之fiddler界面工具栏介绍
  • LabVIEW工业监控系统
  • Linux 文件连接:符号链接与硬链接
  • 数据分类分级
  • 第三十天| 51. N皇后
  • pythn-scipy 查漏补缺
  • 【JavaScript 漫游】【013】Date 对象知识点摘录
  • vue.config.js和webpack.config.js区别
  • H12-821_73
  • postman执行批量测试
  • 蓝桥杯基础知识8 list
  • 【DDD】学习笔记-理解领域模型
  • v-if 和v-show 的区别
  • LabVIEW网络测控系统