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 前端开发
JavaScript实现鼠标放上去之后高亮显示且隔行换色
JavaScript实现鼠标放上去之后高亮显示且隔行换色
13 0
|
1月前
|
JavaScript 前端开发
JavaScript操作DOM元素
JavaScript操作DOM元素
12 1
|
1月前
|
JavaScript 前端开发
JavaScript如何遍历表单元素?
JavaScript如何遍历表单元素?
|
7天前
|
JavaScript 前端开发
js怎么删除html元素
js怎么删除html元素
22 10
|
7天前
|
JavaScript 前端开发
js添加、删除、替换或插入元素。
js添加、删除、替换或插入元素。
8 0
N..
|
30天前
|
缓存 JavaScript 前端开发
Vue.js的计算属性
Vue.js的计算属性
N..
11 2
N..
|
30天前
|
JavaScript 前端开发 数据处理
Vue.js的过滤器和监听属性
Vue.js的过滤器和监听属性
N..
19 1
|
1月前
|
JSON JavaScript 前端开发
JavaScript随手笔记---数组中相同的元素进行分组(数据聚合) groupBy函数
JavaScript随手笔记---数组中相同的元素进行分组(数据聚合) groupBy函数
|
1月前
|
JavaScript 前端开发
JS获取DOM元素的八种方法(含代码,简单易懂)
JS获取DOM元素的八种方法(含代码,简单易懂)
|
1月前
|
存储 JSON JavaScript
如何使用 JavaScript 代码创建虚拟鼠标点击事件
如何使用 JavaScript 代码创建虚拟鼠标点击事件
18 0