😄
前端学习
  • 👋Welcome
  • 📖前端基础
    • HTML
      • 基础知识
      • 进阶知识
      • HTML5
    • CSS
      • 基础知识
      • 进阶知识
      • CSS 专题
        • CSS 选择器
        • CSS 布局
        • CSS 动画
        • CSS 画图
        • 响应式方案
        • CSS BEM 规范
        • CSS 案例
    • JavaScript
      • 基础知识
      • 进阶知识
      • 常用内置对象
        • Array 对象
        • String 对象
        • Number 对象
        • Boolean 对象
        • Math 对象
        • Date 对象
        • RegExp 对象
        • Object 对象
      • JS 专题
        • 数据类型
        • 原型链/继承
        • 对象赋值与拷贝
        • this 的指向
        • 异步操作
        • 模块化
        • 设计模式
    • 浏览器
      • 浏览器模型
      • 事件
      • 位置属性
      • Web 缓存
      • 本地存储
    • 综合内容
      • 前端跨域
      • 登录鉴权
      • 文件上传与下载
  • 🏗️前端框架
    • Vue.js
      • 基础知识
      • Vue 组件通信
      • Vuex 使用指南
      • Vue 动画
      • 静态网站框架 VuePress
    • React.js
      • 基础知识
      • 组件通信
  • 📦计算机基础/后端
    • 图解计算机网络
    • HTTP/HTTPS
    • TCP/UDP
    • Node.js
    • MongoDB
  • 🛠️开发工具
    • 版本控制工具-Git
      • git submodule
    • 构建工具-Webpack
    • 错误监控工具-Sentry
    • 单元测试工具-Jest
    • 包管理工具-NPM
    • 代码编辑器-VSCode
  • 🤔专题内容
    • 前端工程化
    • 代码规范
      • JavaScript 代码规范
      • CSS 代码规范
      • Vue 代码规范
      • Git Commit 规范
      • 代码规范配置
    • 网络安全与防御
    • 性能优化
    • 算法编程
    • 数据可视化
  • 🧑‍💻 面试相关
    • 面试知识总结
    • 面试问题总结
    • 面试常见编程
    • 面试资源汇总
  • 🍭其他
    • 项目经验❗️
    • 踩坑指南❗️
      • JavaScript 踩坑指南
      • CSS 踩坑指南
      • Vue 踩坑指南
    • 学习资源
    • 综合收藏夹
由 GitBook 提供支持
在本页
  • 1. window 对象
  • 2. screen 对象
  • 3. 窗体 document.body
  • 4. 鼠标事件 event
  • 5. 元素 ele
  • 6.总结(offset/scroll/client)
  • 6.1 宽高
  • 6.2 上下

这有帮助吗?

  1. 前端基础
  2. 浏览器

位置属性

1. window 对象

  • window.screenX - 返回浏览器窗口左上角相对于当前屏幕左上角的水平距离

  • window.screenLeft - 返回浏览器窗口左上角相对于当前屏幕左上角的水平距离

  • window.screenY - 返回浏览器窗口左上角相对于当前屏幕左上角的垂直距离

  • window.screenTop - 返回浏览器窗口左上角相对于当前屏幕左上角的垂直距离

  • window.innerHeight - 返回网页在当前窗口中可见部分高度,viewport的大小

  • window.innerWidth - 返回网页在当前窗口中可见部分宽度,viewport的大小

  • window.outerHeight - 返回浏览器窗口的高度,包括浏览器菜单和边框

  • window.outerWidth - 返回浏览器窗口的宽度,包括浏览器菜单和边框

  • window.scrollX - 同 window.pageXOffset,返回页面的水平滚动距离

  • window.scrollY - 同 window.pageYOffset,返回页面的垂直滚动距离

2. screen 对象

  • screen.height - 浏览器窗口所在的屏幕的高度

  • screen.width - 浏览器窗口所在的屏幕的宽度

  • screen.availHeight - 浏览器窗口可用的屏幕高度(不包含任务栏)

  • screen.availWidth - 浏览器窗口可用的屏幕宽度

3. 窗体 document.body

  • document.body.clientWidth - 可见区域宽(不包括工具栏、滚动条)

  • document.body.clientHeight - 可见区域高(不包括工具栏、滚动条)

  • document.documentElement.scrollWidth - 整个网页的宽,包括可视区域和被卷起来区域

  • document.documentElement.scrollHeight - 整个网页的宽,包括可视区域和被卷起来区域

  • document.body.scrollTop - 整个网页的上方被卷起来的部分

  • document.body.scrollLeft - 整个网页的左边被卷起来的部分

4. 鼠标事件 event

  • e.clientX / e.clientY - (可视区域左上角为参考点)鼠标距离可视窗口左侧边缘的距离,可视区域不包括工具栏和滚动条

  • e.pageX / e.pageY - (页面左上角为参考点)鼠标距离网页文档X轴左侧边缘/上侧边缘距离,等于 clientX + scrollLeft

  • e.offsetX / e.offsetY - (所在dom左上角为参考点)鼠标指针水平方向上距离当前绑定元素左侧 border 与 padding 分界线之间的距离

  • e.sceenX / e.sceenY - (屏幕的左上角为参考点)

5. 元素 ele

  • ele.clientLeft/Top - 元素左 border 的宽度和上 border 的高度

  • ele.clientWidth/Height - 元素 content + padding - 滚动条的宽度或高度(如果有)

  • ele.offsetWidth/Height - 元素 content + padding + border 的宽度或高度

  • ele.scrollLeft/Top - 元素水平、垂直滚动条切去的宽度或高度

  • ele.offsetLeft/Top - 当元素的父辈中没有存在 position 属性(除 static),含义就是该元素的 margin 与 borde 之间分界到网页文档左侧之间的距离;当某个元素的父辈中存在 position 属性(除 static),含义就是该元素的 margin 与 borde 之间分界到最近父辈元素border与padding之间分界之间的距离

offsetLeft 和 offsetTop 值的获取跟父级元素没关系,而是跟其上一级的定位元素(除 position:static 外的所有定位)有关系。

6.总结(offset/scroll/client)

6.1 宽高

  • offsetWidth = width + padding + border

  • offsetHeight = height + padding + border

  • scrollWidth = 内容宽度(不包含border)

  • scrollHeight = 内容高度(不包含border)

  • clientWidth = width + padding

  • clientHeight = height + padding

6.2 上下

内容
调用者
作用

offsetTop/Left

任意元素(主要是盒子)

距离带有定位父系元素的距离

scrollTop/Left

document.body/window或含有滚动条盒子

浏览器无法显示(或卷去)的部分

clientY/clientX

event

鼠标距离浏览器可视区域的距离

上一页事件下一页Web 缓存

最后更新于3年前

这有帮助吗?

如果你对内容有任何疑问,欢迎提交 或

📖
❕issues
✉️ email