鼠标 event 中的各种 X 与 Y
创作时间:
作者:
@小白创作中心
鼠标 event 中的各种 X 与 Y
引用
1
来源
1.
https://juejin.cn/post/7483049212314779683
在前端开发中,鼠标事件是一个非常基础但又极其重要的知识点。然而,对于初学者来说,鼠标事件中的各种X和Y坐标往往容易混淆。本文将详细讲解这些坐标的含义和使用场景,并通过一个拖拽案例来加深理解。
event 中的各种 X 与 Y
初学者在使用鼠标事件监听器时,总会搞混 X 与 Y 的作用与含义,这篇文章便来仔细讲讲这方面的知识。
client x | y
client 指的是当前事件触发位置相对于浏览器左上角的坐标,由于该值是相对于浏览器的坐标,因此如果绑定的元素滚动则该值会因为页面的滚动导致该值的计算原点改变,从而导致结果不同。
layer x | y
layer 指的是当前事件触发位置相对于其具有定位元素的父元素的左上角的坐标,如果找不到父元素则以 body 的左上角为原点。
offset x | y
offset 指的是当前事件触发位置相对于事件元素的坐标,并且由于该属性指的是整个事件元素,因此计算时会算上 padding 的值。
page x | y
page 指的是当前事件触发位置相对于文档左上角的坐标,由于该值是相对于整个文档流的坐标,因此即使发生滚动,该值也按照原先的原点进行计算
screen x | y
screen 指的是当前事件触发位置相对于你的整个显示器(电脑屏幕)左上角的坐标,因此该值会根据你浏览器窗口的位置改变而发生改变。
特殊事件的 event
movement x | y
movement 是 mousemove 事件特定的属性,只有在 mousemove 中能够具有有效值。它指的是当次鼠标移动位置与上一次鼠标移动位置的大小,向右移动为正值,向左为负值,以此类推。
delta x | y | z
delta 是鼠标滚轮事件的特定属性,只有鼠标滚轮时才具有有效值。该值指的是鼠标的滚动量,该值具有正负,因此可以用来表示滚动的方向。
一个小案例
拖拽案例
const box = document.getElementById('box');
let moving = false;
let xBuffer = 0;
let yBuffer = 0;
document.addEventListener('mousedown', (e) => {
if (moving && e.target.id !== 'box') {
return;
}
const { left, top } = box.style;
const { clientX, clientY } = e;
moving = true;
xBuffer = clientX - Number(left.substr(0, left.indexOf('px')));
yBuffer = clientY - Number(top.substr(0, top.indexOf('px')));
});
document.addEventListener('mousemove', (e) => {
if (!moving) {
return;
}
box.style.left = (e.clientX - xBuffer) + 'px';
box.style.top = (e.clientY - yBuffer) + 'px';
});
document.addEventListener('mouseup', (e) => {
if (!moving) {
return;
}
moving = false;
});
热门推荐
薛定谔的猫如何一战成名
血管炎在饮食上有什么禁忌
教小学生彩铅课件视频
主动脉瘤微创手术:降低风险,加快恢复
糖尿病患者可以食用猕猴桃吗
永劫无间崔三娘武器咋选?太刀、长枪、阔刀利弊全解析!
一个鸭脚的热量揭秘:美味与健康的平衡
十大鸭掌的家常做法分享 10道美味鸭爪吃法推荐
跑步一定要快?超慢跑,一种不累的跑步方式
新年立下每天运动的flag了吗?试试“原地超慢跑”吧
艾滋病病程全解析:从隐匿感染到免疫崩溃的四个阶段
北京八一大楼不是国防部大楼,也不是军委办公场所
铂金和黄金的区别
秦琼:从战神到门神的传奇转变
历史上的秦琼有多牛?冲锋威力无人可挡,单挑水平当世第一
大宗商品都有哪些种类?这些种类的市场需求如何?
最新脑电波ERP叠加平均技术解读 脑电波数据处理方法 专业人士带你了解核心技术
2025全年养生月历,一年养生重点都在这里!送你全年健康
100cc、125cc摩托车胎压打多少才正确?一文读懂摩托车胎压对照表
当今汽车制造业中的机器人技术
防脱发发生的办法:从根源守护,重拾自信秀发
星辰变第六季终于有新动静!秦羽将前往炫金山圣皇殿,你期待吗?
大宗商品交易的风险管理策略全解析
如何理解市场研究的价值?这种理解对投资决策有何帮助?
如何认识黄金ETF的投资特点?这种投资特点在市场中的优势是什么?
软件测试基础知识入门教程
夏季肩周炎频发,如何保养?
补铁误区:补再多不吸收等于零!医生教你如何高效补铁!
FMEA在产品开发流程中的作用
简单技巧,全面提升男性时尚穿搭形象指南