鼠标 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;
});
热门推荐
《美丽心灵》用线性和非线性叙事的交替使用,展现了希望和坚韧
11月去珠峰怎么样?
东北雨姐陷争议:网红经济下的流量与信任博弈
范伟群:紫砂文化传承与创新的代表人物
《阿西莫夫短篇全集:最后的思考》
个人艺术照与婚纱照拍摄效果的异同解析
机器人作业、回收退役电池……上海汽车产业如何推进绿色低碳发展
八字命理学:炎黄子孙的幸福哲学
6个独特的数字银行中后台用户体验设计,开启金融产品体验革新之路
败者树与胜者树的时间复杂度对比及应用场景分析
7月盘点全球新媒体艺术“超自然”趋势
肌骨超声:精准诊断足底筋膜炎,开启康复新希望
风云之眼看节气!看气象科技与传统文化的时空对话!
想要成为影之实力者第一季:深度解析与剧情回顾
电机转矩、功率、转速、电压、电流换算公式,只要记住这个就够了
打造理想庭院:10个步骤助你设计出高级户外空间
怎样建造坚固的房子?建造结实房子的关键步骤是什么?
黄金稳坐避险王座,比特币仍在「青春期」挣扎
一次性酒店床单测评标准详解
《论语》19.9 君子有三变
Excel表格中备注功能的使用方法与最佳实践
冲动控制障碍的治疗方法有哪些
员工请假被拒后可以采取哪些措施
sci论文作者和通讯作者怎么标注
化学计算利器:揭秘质量分数公式的奥妙
VMware vCenter Server与ESXi版本兼容对照表
如何练习汽车倒库技巧?这种练习对驾驶技能有何提升?
海外谈中国:歼-31陆基型隐形战斗机新照片出现 国内国外都需要
歼-31B战机性能战术深度解析:隐形优势与多用途作战能力
研究 | 石晓宇 王明 :数字化背景下璎珞的文化保护与再设计应用