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


Posted in Javascript onFebruary 26, 2016

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

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

div.onmouseout=function(event){
    var div = document.getElementById("test");
    var x=event.clientX;
    var y=event.clientY;
    var divx1 = div.offsetLeft;
    var divy1 = div.offsetTop;
    var divx2 = div.offsetLeft + div.offsetWidth;
    var divy2 = div.offsetTop + div.offsetHeight;
    if( x < divx1 || x > divx2 || y < divy1 || y > divy2){
    //如果离开,则执行。。
}

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

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

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
关于javascript 回调函数中变量作用域的讨论
Sep 11 Javascript
对采用动态原型方式无法展示继承机制得思考
Dec 04 Javascript
使用jQuery+HttpHandler+xml模拟一个三级联动的例子
Aug 09 Javascript
关于onScroll事件在IE6下每次滚动触发三次bug说明
Sep 21 Javascript
jQuery增加自定义函数的方法
Jul 18 Javascript
JS+CSS实现仿雅虎另类滑动门切换效果
Oct 13 Javascript
AngularJs Understanding the Controller Component
Sep 02 Javascript
使用Angular.js实现简单的购物车功能
Nov 21 Javascript
前端路由&amp;webpack基础配置详解
Jun 10 Javascript
在Layui中操作数据表格,给指定单元格添加事件示例
Oct 26 Javascript
基于node+vue实现简单的WebSocket聊天功能
Feb 01 Javascript
JavaScript实现PC端四格密码输入框功能
Feb 19 Javascript
超实用的JavaScript表单代码段
Feb 26 #Javascript
理解javascript中Map代替循环
Feb 26 #Javascript
JS实现随页面滚动显示/隐藏窗口固定位置元素
Feb 26 #Javascript
学习使用jquery iScroll.js移动端滚动条插件
Mar 24 #Javascript
AngularJS整合Springmvc、Spring、Mybatis搭建开发环境
Feb 25 #Javascript
JavaScript 正则表达式中global模式的特性
Feb 25 #Javascript
javascript动态获取登录时间和在线时长
Feb 25 #Javascript
You might like
Windows中安装Apache2和PHP4权威指南
2006/11/18 PHP
php在多维数组中根据键名快速查询其父键以及父键值的代码
2011/05/07 PHP
PHP 文件编程综合案例-文件上传的实现
2013/07/03 PHP
php查询mysql大量数据造成内存不足的解决方法
2015/03/04 PHP
实例讲解PHP页面静态化
2018/02/05 PHP
使用jQuery+HttpHandler+xml模拟一个三级联动的例子
2011/08/09 Javascript
js实现TAB切换对应不同颜色的代码
2015/08/31 Javascript
javascript实现抽奖程序的简单实例
2016/06/07 Javascript
Bootstrap实现input控件失去焦点时验证
2016/08/04 Javascript
无阻塞加载js,防止因js加载不了影响页面显示的问题
2016/12/18 Javascript
Vue.js开发环境快速搭建教程
2017/03/17 Javascript
浅谈Vue数据绑定的原理
2018/01/08 Javascript
JS实现HTML页面中动态显示当前时间完整示例
2018/07/30 Javascript
JavaScript undefined及null区别实例解析
2020/07/21 Javascript
使用JavaScript和MQTT开发物联网应用示例解析
2020/08/07 Javascript
[01:47]2018年度DOTA2最具人气解说-完美盛典
2018/12/16 DOTA
python的三目运算符和not in运算符使用示例
2014/03/03 Python
盘点提高 Python 代码效率的方法
2014/07/03 Python
详解Python中的装饰器、闭包和functools的教程
2015/04/02 Python
用Python中的__slots__缓存资源以节省内存开销的方法
2015/04/02 Python
Python实现简单HTML表格解析的方法
2015/06/15 Python
django初始化数据库的实例
2018/05/27 Python
详解python执行shell脚本创建用户及相关操作
2019/04/11 Python
python网络应用开发知识点浅析
2019/05/28 Python
python操作kafka实践的示例代码
2019/06/19 Python
python 利用浏览器 Cookie 模拟登录的用户访问知乎的方法
2019/07/11 Python
Python实现序列化及csv文件读取
2020/01/19 Python
pytorch 实现在一个优化器中设置多个网络参数的例子
2020/02/20 Python
Champion官网:美国冠军运动服装
2017/01/25 全球购物
日本索尼音乐商店:Sony Music Shop
2018/07/17 全球购物
家教广告词
2014/03/19 职场文书
房产授权委托书范本
2014/09/22 职场文书
交通安全横幅标语
2014/10/07 职场文书
餐厅服务员管理制度
2015/08/05 职场文书
nodejs利用readline提示输入内容实例代码
2021/07/15 NodeJs
Python尝试实现蒙特卡罗模拟期权定价
2022/04/21 Python