Home  >  Article  >  Web Front-end  >  js判断鼠标位置是否在某个div中的方法_javascript技巧

js判断鼠标位置是否在某个div中的方法_javascript技巧

PHP中文网
PHP中文网Original
2016-05-16 15:13:223020browse

本文实例讲述了js判断鼠标位置是否在某个p中的方法。分享给大家供大家参考,具体如下:

p的onmouseout事件让p消失时,会出现这样的情况,就是当鼠标移至p中的其它内容时,此时也判定为离开p,会触发 onmouseout事件,这样p中的内容就不能操作了。解决的办法是当触发onmouseout事件时,先判断鼠标是否在p内,如果在,说明鼠 标并没有离开p,就不删除p,否则,删除之。OK,现在问题解决了。
就是找到该p左上角和右下角坐标,判断鼠标的坐标是否在这一区域就可以了。

p.onmouseout=function(event){
    var p = document.getElementById("test");
    var x=event.clientX;
    var y=event.clientY;
    var px1 = p.offsetLeft;
    var py1 = p.offsetTop;
    var px2 = p.offsetLeft + p.offsetWidth;
    var py2 = p.offsetTop + p.offsetHeight;
    if( x < px1 || x > px2 || y < py1 || y > py2){
    //如果离开,则执行。。
}

后面为一些常用属性方便查找

clientHeight     获取对象的高度,不计算任何边距、边框、滚动条,但包括该对象的补白。
clientLeft     获取    offsetLeft     属性和客户区域的实际左边之间的距离。
clientTop     获取    offsetTop     属性和客户区域的实际顶端之间的距离。
clientWidth     获取对象的宽度,不计算任何边距、边框、滚动条,但包括该对象的补白。
offsetHeight     获取对象相对于版面或由父坐标    offsetParent     属性指定的父坐标的高度。
offsetLeft     获取对象相对于版面或由    offsetParent     属性指定的父坐标的计算左侧位置。
offsetParent     获取定义对象    offsetTop     和    offsetLeft     属性的容器对象的引用。
offsetTop     获取对象相对于版面或由    offsetTop     属性指定的父坐标的计算顶端位置。
offsetWidth     获取对象相对于版面或由父坐标    offsetParent     属性指定的父坐标的宽度。
offsetX     设置或获取鼠标指针位置相对于触发事件的对象的    x     坐标。
offsetY     设置或获取鼠标指针位置相对于触发事件的对象的    y     坐标。
clientX,clientY   鼠标当前相对于网页的位置,当鼠标位于页面左上角时clientX=0, clientY=0
screenX, screenY是相对于用户显示器的位置
网页可见区域宽: document.body.clientWidth
网页可见区域高: document.body.clientHeight
网页可见区域宽: document.body.offsetWidth    (包括边线的宽)
网页可见区域高: document.body.offsetHeight   (包括边线的宽)
网页正文全文宽: document.body.scrollWidth
网页正文全文高: document.body.scrollHeight
网页被卷去的高: document.body.scrollTop
网页被卷去的左: document.body.scrollLeft
网页正文部分上: window.screenTop
网页正文部分左: window.screenLeft
屏幕分辨率的高: window.screen.height
屏幕分辨率的宽: window.screen.width
屏幕可用工作区高度: window.screen.availHeight
屏幕可用工作区宽度:window.screen.availWidth

以上就是js判断鼠标位置是否在某个div中的方法_javascript技巧的内容,更多相关内容请关注PHP中文网(www.php.cn)!


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn