鼠标 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;
});
热门推荐
中国电视文艺作品最高奖项!《寻古中国·云梦记》上榜
CAR-T、CAR-NK和CAR-M有什么不同?
枸杞:贺兰山麓宝石红
2024年中国低空经济发展指数报告(附PDF下载)
财政部旗下信达地产百亿布局,有望重塑地产投资格局
PWM是什么技术,应用于哪些方面
心学问青少年教育,理解与尊重:青春期的亲子沟通与共情
景风东扇:唐代中国的景教
这种奶真不是垃圾奶!调制乳的营养价值与选购指南
中医治疗寻常疣、丝状疣
西门子S7-1500同步控制案例深度解析:复杂运动控制的实现
半导体芯片光刻工艺详解:从预处理到图形转移的全流程解析
机械加工零件设计中需要注意的技术细节有哪些?
铝真空钎焊工艺流程详解
喝牛奶的好处与注意事项
人工智能与人类合作:未来工作模式的新探索
导弹横行的时代,为啥军舰上还装火炮?火炮的优点导弹还真比不上
深观察|人工智能全球爆火,数字化赋能教师发展之路如何走?
食用辣椒对头部痘痘有影响吗
家装中不可忽视的铅污染 不小心可能致命!
期货交易中爆仓的原因是什么?如何有效避免爆仓风险?
跨境电商选品技巧:掌握这几招让店铺更具竞争力
减肥可以喝苹果醋饮料吗?效果与注意事项全解析
HR从业者的职业困局:当晋升停滞遇上舒适圈,是破局还是坚守?
亚冠焦点战前瞻!上海申花VS川崎前锋:主场龙能否力克客场虎?
中小学教师如何应对智能时代挑战
甲骨文在历史文化研究中的价值
聚焦农业科技创新:植物工厂种出“智慧菜”
分析|高歌猛进豪取西部第二 快船激发出东契奇内心的“魔鬼”
股市尾盘交易技巧全解析:量价关系、资金流向与异动操作