鼠标 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;
});
热门推荐
存在感最低的广东菜系,不只会酿一切
已经很成熟的磁吸无线快充,为啥安卓厂商不用?
炎夏肌肤出油好困扰,如何战痘 远离出油肌?
轻松掌握记忆大法:高效学习的秘诀
动力电池回收,是金属材料的博弈
漫威电影宇宙(MCU)大盘点:第一到第五阶段54部影视
如何理解公积金冲抵的规则?这种冲抵方式如何实现效益最大化?
如何合理规划公积金的还款策略?公积金还款的计算方法有哪些?
混沌、吸引子、分形:复杂非线性系统的多稳定性与不可预测性
手机相机分辨率调整全攻略:从入门到精通
冰心《荷叶·母亲》原文及赏析
“高血脂”的克星已经被找到,坚持每天吃一点,血液干净不粘稠
【温度对掺杂效率的影响】:结合实验与理论的深度解读
热载流子效应
1分钱一片的二甲双胍,与1.5元的有什么区别?药效差百倍吗?
车载测试十五大总结,最后一点最重要
观澜街道:古村新韵·小村落崛起“中国版画第一村”
高职升本科全攻略:5种途径详解,助力学历提升!
上海电机学院新能源汽车专业:背靠产业集群,实习就业优势显著
听古典音乐治疗抑郁症?中国科学家探索音乐疗法新应用
实木指接板的优缺点 什么是指接板
指接板是什么板材
腮腺肿瘤:症状、诊断与治疗全解析
由深入新,好吃到“镇”!这些新会美食让你“食过返寻味”
新会区文物古迹介绍
让你保持好身材的 5 个燃脂习惯
我国特高压技术有多牛?中国标准就是世界标准,实力打脸西方国家
向日葵什么时候开花?一天之内
如何理解企业增利润策略的实际应用?这些策略对企业长期发展有何推动作用?
如何改善银行信用评分?