js 各种位置获取全解(包括元素属性、鼠标位置、滚动位置)

简介: js 各种位置获取全解(包括元素属性、鼠标位置、滚动位置)

目录


元素位置属性



如果不了解盒子模型建议先阅读一下:css 盒子模型详解

image.png

获取元素四周与浏览器屏幕视窗位置方法



要想获得与屏幕的关系,一般是在有滚动的情况下可以用于计算,用到的是元素的getBoundingClientRect方法。

该方法返回的对象上存在如下属性:

image.png

浏览器屏幕可视宽高


小知识:document.documentElement就可以看作html标签元素也就是主根元素、document.body就是body标签元素也就是文档元素。

image.png

鼠标位置


image.png

    document.getElementById('box').onmousemove = (e) => {
        console.log(e.x,e.y)
    }

鼠标在某元素上的位置



image.png

    const box = document.getElementById('box')
    box.onmousemove = (e) => {
        console.log(
            e.x - box.getBoundingClientRect().x,
            e.y - box.getBoundingClientRect().y
        )
    }

滚动位置



小知识:如果不是自己设定的div滚动窗口,就用浏览器的滚动窗口,有很多种监听事件。window.onscroll、document.onscroll、document.body.onscroll、document.documentElement.onscroll这些都是一个效果,但是兼容性不一。最好统一就使用window.onscroll,它的兼容性最好,基本支持所有浏览器。如果是自己设定的div滚动框也可以,同样没有兼容问题。

image.png

相关文章
|
1月前
|
JavaScript 前端开发 程序员
前端原生Js批量修改页面元素属性的2个方法
原生 Js 的 getElementsByClassName 和 querySelectorAll 都能获取批量的页面元素,但是它们之间有些细微的差别,稍不注意,就很容易弄错!
|
1月前
|
监控 JavaScript 前端开发
确定使用 `defer` 属性还是 `async` 属性来异步加载 JavaScript
【10月更文挑战第24天】选择使用 `defer` 属性还是 `async` 属性来异步加载 JavaScript 是一个需要综合考虑多个因素的决策。需要根据脚本之间的依赖关系、页面加载性能要求、脚本的功能和重要性等因素来进行权衡。在实际应用中,需要通过测试和验证来确定最适合的加载方式,以提供更好的用户体验和页面性能。
|
1月前
|
数据采集 存储 监控
实现自动化数据抓取:使用Node.js操控鼠标点击与位置坐标
本文介绍了如何使用Node.js和Puppeteer实现自动化数据抓取,特别是针对新闻网站“澎湃新闻”。通过设置代理IP、User-Agent和Cookie,提高爬虫的效率和隐蔽性,避免被网站封锁。代码示例展示了如何模拟鼠标点击、键盘输入等操作,抓取并整理新闻数据,适用于需要规避IP限制和突破频率限制的场景。
92 10
|
1月前
|
JavaScript
JS鼠标框选并删除HTML源码
这是一个js鼠标框选效果,可实现鼠标右击出现框选效果的功能。右击鼠标可拖拽框选元素,向下拖拽可实现删除效果,简单实用,欢迎下载
42 4
|
1月前
|
JavaScript 前端开发 开发者
.js的dom元素操作
【10月更文挑战第29天】通过灵活运用这些 DOM 元素操作方法,JavaScript 可以实现丰富的网页交互效果,如动态更新页面内容、响应用户操作、创建和删除页面元素等。在实际开发中,开发者可以根据具体的需求和场景,选择合适的 DOM 元素操作方法来实现所需的功能,为用户提供更加流畅和动态的网页体验。
|
1月前
|
监控 JavaScript 前端开发
使用 `defer` 属性异步加载 JavaScript
【10月更文挑战第24天】使用 `defer` 属性异步加载 JavaScript 是一种有效的提高页面性能和用户体验的方法。通过合理设置 `defer` 属性,可以在不影响页面渲染的情况下异步加载脚本,并确保脚本的执行顺序。在实际应用中,需要根据具体情况选择合适的加载方式,并注意处理可能出现的问题,以确保页面能够正常加载和执行。
|
2月前
|
移动开发 JavaScript 前端开发
原生js如何获取dom元素的自定义属性
原生js如何获取dom元素的自定义属性
80 4
|
2月前
|
JavaScript
js删除数组中已知下标的元素
js删除数组中已知下标的元素
46 4
|
2月前
|
缓存 JavaScript 前端开发
探索Vue.js中的计算属性与侦听器
【10月更文挑战第5天】探索Vue.js中的计算属性与侦听器
28 1
|
2月前
|
存储 JavaScript 前端开发
js中map属性
js中map属性
23 0