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 写的一个简单的timer
Jul 30 Javascript
JavaScript高级程序设计(第3版)学习笔记12 js正则表达式
Oct 11 Javascript
JavaScript中window.open用法实例详解
Apr 15 Javascript
JS实现的最简Table选项卡效果
Oct 14 Javascript
JavaScript如何调试有哪些建议和技巧附五款有用的调试工具
Oct 28 Javascript
javascript中this用法实例详解
Apr 06 Javascript
解决vue打包后vendor.js文件过大问题
Jul 03 Javascript
微信小程序自定义头部导航栏和导航栏背景图片 navigationStyle问题
Jul 26 Javascript
vue中实现上传文件给后台实例详解
Aug 22 Javascript
JavaScript实现秒杀时钟倒计时
Sep 29 Javascript
vue实现前端列表多条件筛选
Oct 26 Javascript
解决await在forEach中不起作用的问题
Feb 25 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
重料打造自己的“宝马”---第三代
2021/03/02 无线电
亚洲咖啡有什么?亚洲咖啡产地介绍 亚洲咖啡有什么特点?
2021/03/05 新手入门
4种PHP异步执行的常用方式
2015/12/24 PHP
PHP框架性能测试报告
2016/05/08 PHP
老生常谈php中传统验证与thinkphp框架(必看篇)
2017/06/10 PHP
070823更新的一个[消息提示框]组件 兼容ie7
2007/08/29 Javascript
js类型检查实现代码
2010/10/29 Javascript
jQuery实现TAB风格的全国省份城市滑动切换效果代码
2015/08/24 Javascript
全面解析Bootstrap表单使用方法(表单按钮)
2015/11/24 Javascript
JavaScript的Backbone.js框架的一些使用建议整理
2016/02/14 Javascript
jQuery简单实现iframe的高度根据页面内容自适应的方法
2016/08/01 Javascript
Angular4学习笔记之根模块与Ng模块
2017/09/09 Javascript
微信小程序使用字体图标的方法
2019/05/23 Javascript
小程序实现搜索框
2020/06/19 Javascript
更优雅的微信小程序骨架屏实现详解
2019/08/07 Javascript
vue在路由中验证token是否存在的简单实现
2019/11/11 Javascript
微信小程序 scroll-view 实现锚点跳转功能
2019/12/12 Javascript
纯js+css实现仿移动端淘宝网站的弹出详情框功能
2019/12/29 Javascript
多种类型jQuery网页验证码插件代码实例
2021/01/09 jQuery
[01:37]PWL S2开团时刻DAY1&2——这符有毒
2020/11/20 DOTA
python如何定义带参数的装饰器
2018/03/20 Python
python K近邻算法的kd树实现
2018/09/06 Python
Python 3.6 中使用pdfminer解析pdf文件的实现
2019/09/25 Python
Django框架之中间件MiddleWare的实现
2019/12/30 Python
Python字典生成式、集合生成式、生成器用法实例分析
2020/01/07 Python
Python中的 ansible 动态Inventory 脚本
2020/01/19 Python
世界上最大的冷却器制造商:Igloo Coolers
2019/07/23 全球购物
领导调研接待方案
2014/02/27 职场文书
实习会计求职自荐信范文
2014/03/10 职场文书
公司总经理助理岗位职责
2014/07/09 职场文书
大学毕业生推荐信
2014/07/09 职场文书
县长“四风”对照检查材料思想汇报
2014/10/05 职场文书
弘扬焦裕禄精神践行三严三实心得体会
2014/10/13 职场文书
交通安全教育心得体会
2016/01/15 职场文书
解决Swagger2返回map复杂结构不能解析的问题
2021/07/02 Java/Android
Nginx 502 bad gateway错误解决的九种方案及原因
2022/08/14 Servers