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 相关文章推荐
htm调用JS代码
Mar 15 Javascript
实现连缀调用的map方法(prototype)
Aug 05 Javascript
探究Javascript模板引擎mustache.js使用方法
Jan 26 Javascript
什么是JavaScript中的结果值?
Oct 08 Javascript
JS制作适用于手机和电脑的通知信息效果
Oct 28 Javascript
详解angularjs中的隔离作用域理解以及绑定策略
May 31 Javascript
JS使用遮罩实现点击某区域以外时弹窗的弹出与关闭功能示例
Jul 31 Javascript
使用JavaScript实现node.js中的path.join方法
Aug 12 Javascript
JavaScript中this的全面解析及常见实例
May 14 Javascript
微信小程序中悬浮窗功能的实现代码
Aug 02 Javascript
js消除图片小游戏代码
Dec 11 Javascript
quickjs 封装 JavaScript 沙箱详情
Nov 02 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
PHP读取大文件的多种方法介绍
2016/04/04 PHP
Yii配置与使用memcached缓存的方法
2016/07/13 PHP
浅谈laravel orm 中的一对多关系 hasMany
2019/10/21 PHP
jQuery页面滚动浮动层智能定位实例代码
2011/08/23 Javascript
jQuery操作Select的Option上下移动及移除添加等等
2013/11/18 Javascript
jQuery实现长按按钮触发事件的方法
2015/02/02 Javascript
使用jQuery mobile库检测url绝对地址和相对地址的方法
2015/12/04 Javascript
jquery ajax双击div可直接修改div中的内容
2016/03/04 Javascript
webpack常用配置项配置文件介绍
2016/11/07 Javascript
jquery精度计算代码 jquery指定精确小数位
2017/02/06 Javascript
SVG描边动画
2017/02/23 Javascript
Vuex和前端缓存的整合策略详解
2017/05/09 Javascript
vue页面切换到滚动页面显示顶部的实例
2018/03/13 Javascript
微信小程序一周时间表功能实现
2019/10/17 Javascript
基于vue.js实现购物车
2020/01/15 Javascript
通过js实现压缩图片上传功能
2020/02/25 Javascript
JS实现手写 forEach算法示例
2020/04/29 Javascript
在vue中给后台接口传的值为数组的格式代码
2020/11/12 Javascript
jquery实现广告上下滚动效果
2021/03/04 jQuery
浅谈function(函数)中的动态参数
2017/04/30 Python
Python利用QQ邮箱发送邮件的实现方法(分享)
2017/06/09 Python
对python中array.sum(axis=?)的用法介绍
2018/06/28 Python
pandas进行时间数据的转换和计算时间差并提取年月日
2019/07/06 Python
使用django的ORM框架按月统计近一年内的数据方法
2019/07/18 Python
Python实现基于SVM的分类器的方法
2019/07/19 Python
基于Python实现扑克牌面试题
2019/12/11 Python
python基于exchange函数发送邮件过程详解
2020/11/06 Python
amazeui时间组件的实现示例
2020/08/18 HTML / CSS
美国购买体育、音乐会和剧院门票网站:SelectATicket
2019/09/08 全球购物
什么是组件架构
2016/05/15 面试题
大学新生入学教育方案
2014/05/16 职场文书
设计专业自荐信
2014/06/19 职场文书
开学典礼致辞
2015/07/29 职场文书
机关干部纪律作风整顿心得体会
2016/01/23 职场文书
面试被问select......for update会锁表还是锁行
2021/11/11 MySQL
ssh服务器拒绝了密码 请再试一次已解决(亲测有效)
2022/08/14 Servers