js鼠标事件 clientX、clientY、offsetX、offsetY、layerX、layerY、pageX、 pageY、screenX、screenY「建议收藏」

js鼠标事件 clientX、clientY、offsetX、offsetY、layerX、layerY、pageX、 pageY、screenX、screenY「建议收藏」MouseEvent的类别有以下:mousedown鼠标按下mouseup鼠标释放click左键单击dblclick左键双击mousemove鼠标移动mouseover鼠标经过mouseout鼠标滑出mouseenter鼠标进入mouseleave鼠标离开contextmenu右键菜单注意:执行顺序:mousedown—&g…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

MouseEvent的类别有以下:

  1. mousedown 鼠标按下
  2. mouseup 鼠标释放
  3. click 左键单击
  4. dblclick 左键双击
  5. mousemove 鼠标移动
  6. mouseover 鼠标经过
  7. mouseout 鼠标滑出
  8. mouseenter 鼠标进入
  9. mouseleave 鼠标离开
  10. contextmenu 右键菜单

注意:

  • 执行顺序:mousedown —> mouseup —> click
  • 区别:mouseover和mouseout子元素也会触发,可以冒泡触发
  • 区别:mouseenter和mouseleave是针对侦听的对象触发,阻止了冒泡

阻止鼠标的默认事件

  • e.preventDefault()
  • e.returnValue=false;//IE8 及以下兼容写法
  • return false;//IE兼容写法,只用作on事件阻止默认事件

去除单击右键菜单

document.body.addEventListener("contextmenu",clickHandler);
function clickHandler(e){ 
   
    e.preventDefault();//阻止事件默认行为
    console.log(e.type);
}

Jetbrains全家桶1年46,售后保障稳定

阻止图像默认拖拽

var img=document.querySelector("img");
img.addEventListener("mousedown",mouseHandler);
function mouseHandler(e){ 
   
    e.preventDefault();
}

阻止文字的拖拽和选择

document.body.addEventListener("mousedown",mouseHandler);
function mouseHandler(e){ 
   
    e.preventDefault();
}

阻止表单提交及重设

var bn=document.querySelector("[type=submit]");
bn.addEventListener("click",clickHandler);
function clickHandler(e){ 
   
    e.preventDefault();
}

//或者对form来写
var form=document.querySelector("form");
form.addEventListener("submit",submitHandler);
function submitHandler(e){ 
   
    e.preventDefault();
    //e.returnValue=false;//IE8 及以下兼容写法
} 

MouseEvent对象

打印出MouseEvent对象内容:

document.body.addEventListener("mousedown",clickHandler);
function clickHandler(e){ 
   
    console.log(e);
}

打印结果如下(只截取了部分内容):
MouseEvent对象

  • altKey ctrlKey shiftKey metaKey 是否按键点击
  • button buttons which用来判断是鼠标的哪个键操作的
    左键对应的值为 0、1、1
    中键对应的值为 1、4、2
    右键对应的值为 2、2、3
  • timeStamp 从页面打开开始到触发事件的时间

以下内容为坐标值的说明:

clientX和clientY与x,y

  • clientX和clientY与x,y一样的,都是客户区域坐标,指鼠标的坐标,以浏览器显示区域的左上角开始,x,y是新浏览器支持

以下截图打印的结果都是div2元素的左上顶点(从边框开始)的位置坐标。
clientX,clientY

offsetX,offsetY

  • offsetX,offsetY 针对目标元素的左上角坐标(e.target),下面截图中鼠标点击有误差,不影响结果。
    offsetX、offsetY

layerX,layerY

  • layerX,layerY 往上找有定位属性的父元素的左上角(自身有定位属性的话就是相对于自身),都没有的话,就是相对于body的左上角

当元素及它的父级都没有定位属性时,以body的左上角为原点:
layerX、layerY
当元素的父级都有定位属性时,以父级的左上角为原点:
layerX、layerY
当元素自身有定位属性时,以自身的左上角为原点:
layerX、layerY

pageX, pageY

  • pageX, pageY相对页面左上角的距离
    pageX、pageY

screenX screenY

  • screenX screenY 相对屏幕左上角的位置
    screenX、screenY

总结:

  • clientX和clientY与x,y一样的,以浏览器显示区域的左上角开始,指鼠标的坐标。x,y是新浏览器支持
  • offsetX,offsetY,针对目标元素的左上角坐标,从padding开始。
  • layerX,layerY,往上找有定位属性的父元素的左上角(自身有定位属性的话就是相对于自身),都没有的话,就是相对于body的左上角
  • pageX,pageY相对页面左上角的距离
  • screenX screenY 相对屏幕左上角的位置
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/210117.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • v-if与v-show的区别

    v-if与v-show的区别相同点:v-if与v-show都可以动态控制dom元素显示隐藏不同点:v-if显示隐藏是将dom元素整个添加或删除,而v-show隐藏则是为该元素添加css–display:none,dom元素还在。都修改为false后,第一个div是直接被移除掉了需要注意的是,当一个元素默认在css中加了display:none属性,这时通过if-show修改为true是无法让元素显示的。…

    2022年6月13日
    30
  • 文本框事件顺序[通俗易懂]

    文本框事件顺序[通俗易懂]http://www.cnblogs.com/williambirkin/archive/2007/05/09/740297.html

    2025年7月11日
    2
  • 向量与矩阵的范数(比较1-范数、2-范数、无穷范数、p-范数、L0范数 和 L1范数等)

    阅读文献时,经常看到各种范数,机器学习中的稀疏模型等,也有各种范数,其名称往往容易混淆,例如:L1范数也常称为“1-范数”,但又和真正的1-范数又有很大区别。下面将依次介绍各种范数。1、向量的范数向量的1-范数:;各个元素的绝对值之和;向量的2-范数:;每个元素的平方和再开平方根;向量的无穷范数:p-范数:,其中正整数p≥1,并且有例:…

    2022年4月5日
    67
  • 浅谈增强学习

    浅谈增强学习这篇文章就是浅谈一下机器学习领域下的增强学习。为什么博文的题目为浅谈,因为笔者对机器学习的认知比较浅。我分享一个Q算法的C++代码,该例子体现了如何用Q算法学习迷宫寻路。读者可参考我上一篇转载博文给出的例子进行学习。

    2025年7月12日
    3
  • nacicat15激活码_通用破解码

    nacicat15激活码_通用破解码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月17日
    97
  • ip addr命令详解_linux more命令详解

    ip addr命令详解_linux more命令详解(我意识到这是一个古老的问题,但谷歌把我带到了这里,因为我试图找出确切的变化和替换以及它们如何不同).我相信替换和更改都用于修改现有地址.考虑:ipaddradd192.168.1.10/32devdummy0这让我:32:dummy0:mtu1500qdiscnoqueuestateUNKNOWNgroupdefaultlink/ether5a:ec:58:4f:…

    2022年7月28日
    16

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号