首页 > 其他分享 >JS获取位置、滚动条、尺寸的总结

JS获取位置、滚动条、尺寸的总结

时间:2024-08-21 11:19:47浏览次数:8  
标签:元素 鼠标 DOM dom JS 滚动条 获取 尺寸

鼠标位置

  • page:pageX、pageY,当前鼠标距离页面的横纵坐标
  • client: clientX、clientY,鼠标相对于视口的坐标
  • offset:offsetX、offsetY,鼠标相对于事件源 padding-box 的坐标
  • screen: screenX、screenY,鼠标相对于屏幕
  • x、y,等同于 clientX、clientY
  • movement:movementX、movementY,只在鼠标移动事件中有效,相对于上一次鼠标位置,偏移的距离

滚动条

  • scrollTop:获取或设置 DOM 元素的竖向滚动条距离

  • scrollLeft:获取或设置 DOM 元素横向滚动条的距离

  • 如果要获取整个网页,要么获取 document.documentElement,要么获取 document.body

  • window.scrollX, window.pageXOffset:相当于根元素的 scrollLeft

  • window.scrollY, window.pageYOffset:相当于根元素的 scrollTop

  • scrollTo():任何 DOM 对象都可以用,传入两个参数,设置滚动条的绝对位置。

  • scrollBy():任何 DOM 对象都可以用,传入两个参数,在原来的基础上增加多少。

窗口尺寸

image

DOM 尺寸

image

image

DOM 位置

  • offsetParent:每一个元素都有这个属性,这个属性可以用于获取某个元素第一个定位的祖先元素,如果没有会得到 body,body 的 offsetParent 为 null
  • offsetLeft &offsetTop:相对于该元素的 offsetParent 的坐标,注意,如果 offsetParent 是 body,则相对于整个网页,即考虑 body 的 margin 值。
//获取一个元素基于页面的位置
function getPagePosition(dom){
    if(!dom){
        return {};
    }
    let left = 0;
    let top = 0;
    while(dom){
        left += dom.offsetLeft;
        top += dom.offsetTop;
        dom = dom.offsetParent;
    }
    return {
        left,
        top,
    };
}
  • getBoundingClientRect() :该方法可以的得到一个对象,该对象记录了当前元素基于视口的位置,如下图所示

image

标签:元素,鼠标,DOM,dom,JS,滚动条,获取,尺寸
From: https://www.cnblogs.com/zhangyunling/p/18371206

相关文章

  • Node.js 的 模块化
    Node.js中的模块Node.js遵循了CommonJS模块化规范,CommonJS规定了模块的特性和各模块之间如何相互依赖每个模块内部,module变量代表当前模块module变量是一个对象,它的exports属性(即module.exports)是对外的接口加载某个模块,其实是加载该模块的module.exports属性。r......
  • JSP基于SSM会议室预定系统7e5h3(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、研究背景与意义随着企业规模的不断扩大和会议活动的日益频繁,会议室资源的管理与预定成为了一个亟待解决的问题。传统的手工管理方式不仅效率低......
  • JSP基于ssm的二手手机商城rk2i3程序+源码+数据库+调试部署+开发环境
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表技术要求:开发语言:JSP前端使用:HTML5,CSS,JSP动态网页技术后端使用SpringBoot,Spring技术主数据库使用MySQL开题报告内容一、项目背景与意义随着科技的快速......
  • JSP基于servlet技术实现游戏娱乐平台55c2v
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表技术要求:开发语言:JSP前端使用:HTML5,CSS,JSP动态网页技术后端使用SpringBoot,Spring技术主数据库使用MySQL开题报告内容一、项目背景随着互联网技术的飞速......
  • JSP基于JSP的新闻发布及管理系统51u85--(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表技术要求:开发语言:JSP前端使用:HTML5,CSS,JSP动态网页技术后端使用SpringBoot,Spring技术主数据库使用MySQL开题报告内容一、项目背景与意义在信息爆炸的时......
  • 783java jsp SSM校园兼职管理系统(源码+文档+开题+运行视频+讲解视频)
      项目技术:SSM+Maven+Vue等等组成,B/S模式+Maven管理等等。环境需要1.运行环境:最好是javajdk1.8,我们在这个平台上运行的。其他版本理论上也可以。2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;3.tomcat环境:Tomcat7.x,8.x,9.x版本均可4.硬件环境:windows7/8......
  • 777java jsp SSM水果蔬菜商品商城管理系统(源码+文档+运行视频+讲解视频)
     项目技术:SSM+Maven+Vue等等组成,B/S模式+Maven管理等等。环境需要1.运行环境:最好是javajdk1.8,我们在这个平台上运行的。其他版本理论上也可以。2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;3.tomcat环境:Tomcat7.x,8.x,9.x版本均可4.硬件环境:windows7/8/1......
  • 782java jsp SSM课程辅助教学网站系统(源码+文档+开题+运行视频+讲解视频)
     项目技术:SSM+Maven+Vue等等组成,B/S模式+Maven管理等等。环境需要1.运行环境:最好是javajdk1.8,我们在这个平台上运行的。其他版本理论上也可以。2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;3.tomcat环境:Tomcat7.x,8.x,9.x版本均可4.硬件环境:windows7/8/1......
  • createjs tween用法
    setInterval(()=>{LetCoin=newlib.Coin();Coin.x=Math.floor(Math.random()*(600-30+1))+30);Coin.y=-50;exportRoot.addChildAt(Coin,1);createjs.Tween.get(Coin).to({y:400},2500).call(()=>{exportRoot.removeChild(Coin);}).addEvent......
  • Vue.js 中的 vue-property-decorator 使用详解
    引言Vue.js是一个流行的前端框架,它的核心理念是让开发者以声明式的方式构建用户界面。尽管Vue的官方API非常直观易用,但随着项目的复杂度增加,使用TypeScript进行类型检查和更好的代码组织变得越来越重要。vue-property-decorator是一个用于在Vue.js中使用TypeScr......