副队长JavaScript教程(63)-BOM之窗口大小与页面滚动

发布时间:2026/10/30 17:36:00

副队长JavaScript教程(63)-BOM之窗口大小与页面滚动 点此查看所有教程、项目、源码导航文章目录1. 背景2. 获取浏览器窗口可视区域大小2.1 innerWidth、innerHeight2.2 outerWidth、outerHeight了解3. 窗口缩放事件 resize4. 获取页面滚动距离 scrollX、scrollY5. 控制页面滚动的方法5.1 scrollTo (x, y) 滚动到固定坐标5.2 scrollBy (x, y) 相对当前位置滚动6. 滚动事件 scroll7. 实战案例回到顶部按钮8. 小结1. 背景前面我们学习了定时器这一节继续学习 window 下和窗口、滚动相关的能力。我们平时开发网页经常会遇到这些需求获取浏览器可视区域大小、监听窗口缩放、拿到页面滚动距离、代码控制页面滚动比如回到顶部这些都属于 BOM 的能力。说明这些属性和方法都属于 window 对象书写时 window 可以省略。2. 获取浏览器窗口可视区域大小可视区域就是我们当前能看到网页内容的这块区域也叫视口。2.1 innerWidth、innerHeight// 可视区域宽度包含滚动条console.log(window.innerWidth);// 可视区域高度包含滚动条console.log(window.innerHeight);特点只读属性只能读取不能修改。浏览器窗口缩放的时候这两个值会跟着变化。2.2 outerWidth、outerHeight了解console.log(window.outerWidth);console.log(window.outerHeight);outer 获取的是整个浏览器窗口的大小包含浏览器标题栏、边框一般开发很少用。入门重点区分inner 是网页内容可视区outer 是整个浏览器窗口。3. 窗口缩放事件 resize当用户拖动浏览器边框改变窗口大小的时候会触发 resize 事件。我们可以绑定这个事件在窗口变化时做一些逻辑。window.onresizefunction(){console.log(窗口宽度,innerWidth);console.log(窗口高度,innerHeight);}注意窗口缩放过程中这个事件会频繁触发不要在里面写太重、很耗性能的代码。4. 获取页面滚动距离 scrollX、scrollY当页面内容很长出现滚动条之后我们可以拿到页面已经滚动出去的距离。// 水平滚动距离左右滚console.log(window.scrollX);// 垂直滚动距离上下滚最常用console.log(window.scrollY);页面在最顶部没有滚动scrollY 0往下滚动多少像素scrollY 的数值就是多少只读属性只能读取不能直接赋值修改滚动位置5. 控制页面滚动的方法5.1 scrollTo (x, y) 滚动到固定坐标作用滚动到页面绝对位置x 是水平位置y 是垂直位置。// 滚动到页面最顶部window.scrollTo(0,0);// 垂直滚动到距离顶部 500px 的位置window.scrollTo(0,500);5.2 scrollBy (x, y) 相对当前位置滚动作用在当前滚动位置的基础上再滚动一段距离是相对偏移。正数代表向右、向下负数代表向左、向上。// 在当前位置向下滚动 100pxwindow.scrollBy(0,100);// 在当前位置向上滚动 100pxwindow.scrollBy(0,-100);简单区分scrollTo 是 “去哪”scrollBy 是 “再走多少”。6. 滚动事件 scroll页面滚动的时候会持续触发 scroll 事件。很多网页的导航栏滚动吸顶、滚动时显示回到顶部按钮都是靠这个事件实现。window.onscrollfunction(){console.log(当前垂直滚动距离,scrollY);}7. 实战案例回到顶部按钮需求页面很长滚动超过 300 像素之后显示 “回到顶部” 按钮点击按钮页面滚动回顶部。!DOCTYPEhtmlhtmllangzh-CNheadmetacharsetUTF-8title回到顶部/titlestylebody{height:1500px;}#topBtn{position:fixed;bottom:50px;right:30px;display:none;}/style/headbodybuttonidtopBtn回到顶部/buttonscriptvarbtndocument.getElementById(topBtn);// 滚动事件window.onscrollfunction(){if(scrollY300){btn.style.displayblock;}else{btn.style.displaynone;}}// 点击回到顶部btn.onclickfunction(){scrollTo(0,0);}/script/body/html效果案例讲解给 body 设置很高高度让页面出现滚动条滚动事件里面判断 scrollY大于 300 就显示按钮否则隐藏点击按钮调用 scrollTo (0,0)直接滚动到页面顶部。8. 小结innerWidth /innerHeight获取网页可视区域大小outer 是整个浏览器窗口大小。onresize窗口大小改变触发的事件。scrollX /scrollY读取页面已经滚动的距离只读。scrollTo (x,y)滚动到指定坐标scrollBy (x,y)基于当前位置滚动一段距离。onscroll页面滚动时持续触发。这些都是 window 的 BOM 能力经常用来做回到顶部、滚动吸顶、适配窗口大小等网页效果。
延伸阅读

更多相关文章

2026/10/30 17:30:59

栈、队列与二分:Agent Offer高频考点快速速记

文档知识库教程 【免费下载链接】agent_java_offer 公开的 Java 后端 / AI Agent / 系统设计 / 算法面试复习资料库 项目地址: https://gitcode.com/gh_mirrors/ag/agent_java_offer 点击查看 免费下载 备战 Java 后端 / AI Agent 面试时,栈、队列与二分…

2026/10/29 17:05:52

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/29 17:06:02

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/29 17:06:13

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

2026/10/30 0:00:46

NCP1342高频准谐振反激控制器:从设计约束到验收的完整方案

简介:NCP1342 高频准谐振反激控制器应用介绍译文文档,面向电源设计工程师、硬件研发人员及开关电源学习者,帮助读者跨越英文原版资料的语言门槛,系统理解这款高集成度 QR Flyback 控制器的设计要点。文档围绕芯片核心特性展开&…

2026/10/30 0:00:46

NCP1342准谐振反激电源设计:从选型到验收的全流程解析

简介:这份文档面向电源设计工程师与开关电源学习者,系统梳理NCP1342高频准谐振反激控制器的应用要点,帮助读者快速理解这款高集成度离线电源变换器控制芯片的工作机制与设计方法。内容涵盖芯片核心特性、引脚功能定义、电气特性参数表、最大额…

2026/10/30 0:00:46

Web系统自动登出机制设计与实现全解析

1. 系统自动登出机制的设计初衷在各类Web应用和后台管理系统中,自动登出功能早已成为标配。这个看似简单的功能背后,实际上涉及用户安全、资源管理和体验优化的多重考量。作为从业十多年的老开发,我见过太多因为登出逻辑设计不当导致的安全事…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑