JQuery获取鼠标进入和离开容器的方向


Posted in Javascript onDecember 29, 2016

做动画时,需要判断鼠标进入和退出容器的方向。网上找到的基于JQuery的实现方法,用函数封装了一下,写了一个示例。注意绑定鼠标事件用的是on(),所以JQuery版本需高于1.7。

<!DOCTYPE html>
<html>
 <head>
  <meta charset="UTF-8">
  <title>判断鼠标从哪个方向进入和离开容器</title>
  <script src="js/jquery-3.1.1.min.js"></script>
  <style>
   *{border: 0;margin: 0;padding: 0;}
   .item{width: 300px; height: 200px;border: 1px solid #999;margin: 50px;}
  </style>
 </head>
 <body>
  <div class="item">
  </div>
  <p id="info"></p>
 </body>
 <script>
  /**
   * 判断鼠标从哪个方向进入和离开容器
   * @param {Object} tag JQuery对象,事件绑定的主体
   * @param {Object} e event对象
   * @return {Number} direction 值为“0,1,2,3”分别对应着“上,右,下,左”
   */
  function moveDirection(tag,e){
   var w = $(tag).width();
   var h = $(tag).height();
   var x = (e.pageX - tag.offsetLeft - (w / 2)) * (w > h ? (h / w) : 1);
   var y = (e.pageY - tag.offsetTop - (h / 2)) * (h > w ? (w / h) : 1);
   var direction = Math.round((((Math.atan2(y, x) * (180 / Math.PI)) + 180) / 90) + 3) % 4; 
   return direction;
  }
  //使用方法
  $(".item").on("mouseenter mouseleave", function (e) {
   var eType = e.type;
   var direction = moveDirection(this,e);
   var dirName = new Array("上","右","下","左");
   if(eType == "mouseenter"){
    $("#info").text("鼠标从"+dirName[direction]+"方进入方框");
   }else if(eType == "mouseleave"){
    $("#info").text("鼠标从"+dirName[direction]+"方离开方框");
   }
  });
 </script>
</html>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
JS/FLASH实现复制代码到剪贴板(兼容所有浏览器)
May 27 Javascript
为什么Node.js会这么火呢?Node.js流行的原因
Dec 01 Javascript
IE10中flexigrid无法显示数据的解决方法
Jul 26 Javascript
confirm确认对话框的实现方法总结
Jun 17 Javascript
浅谈jQuery中ajaxPrefilter的应用
Aug 01 Javascript
功能强大的Bootstrap组件(结合js)
Aug 03 Javascript
JavaScript实现经典排序算法之冒泡排序
Dec 28 Javascript
angularjs ocLazyLoad分步加载js文件实例
Jan 17 Javascript
JS实现的模仿QQ头像资料卡显示与隐藏效果
Apr 07 Javascript
Django与Vue语法的冲突问题完美解决方法
Dec 14 Javascript
JS和Canvas实现图片的预览压缩和上传功能
Mar 30 Javascript
JS实现的杨辉三角【帕斯卡三角形】算法示例
Feb 26 Javascript
jQuery实现遮罩层登录对话框
Dec 29 #Javascript
JS实现的简易拖放效果示例
Dec 29 #Javascript
使用DeviceOne实现微信小程序功能
Dec 29 #Javascript
Angularjs 动态改变title标题(兼容ios)
Dec 29 #Javascript
浅谈js算法和流程控制
Dec 29 #Javascript
canvas学习之API整理笔记(二)
Dec 29 #Javascript
Node.js复制文件的方法示例
Dec 29 #Javascript
You might like
php 文章采集正则代码
2009/12/28 PHP
php图片加中文水印实现代码分享
2012/10/31 PHP
关于mysql字符集设置了character_set_client=binary 在gbk情况下会出现表描述是乱码的情况
2013/01/06 PHP
Linux+Nginx+MySQL下配置论坛程序Discuz的基本教程
2015/12/23 PHP
php使用strip_tags()去除html标签仍有空白的解决方法
2016/07/28 PHP
分享一个漂亮的php验证码类
2016/09/29 PHP
使用javascript过滤html的字符串(注释标记法)
2013/07/08 Javascript
jquery定时滑出可最小化的底部提示层特效代码
2013/10/02 Javascript
parentElement,srcElement的使用小结
2014/01/13 Javascript
给应用部分的js代码设定一个统一的入口
2014/06/15 Javascript
js实现使用鼠标拖拽切换图片的方法
2015/05/04 Javascript
jQuery移动web开发之页面跳转和加载外部页面的实现
2015/12/04 Javascript
浏览器环境下JavaScript脚本加载与执行探析之defer与async特性
2016/01/14 Javascript
使用React实现轮播效果组件示例代码
2016/09/05 Javascript
angular ngClick阻止冒泡使用默认行为的方法
2016/11/03 Javascript
微信小程序 video详解及简单实例
2017/01/16 Javascript
Angularjs使用指令做表单校验的方法
2017/03/31 Javascript
Bootstrap Table从零开始
2017/06/30 Javascript
JavaScript通过mouseover()实现图片变大效果的示例
2017/12/20 Javascript
JS实现简单的点赞与踩功能示例
2018/12/05 Javascript
React通过redux-persist持久化数据存储的方法示例
2019/02/14 Javascript
pymongo为mongodb数据库添加索引的方法
2015/05/11 Python
用Python将IP地址在整型和字符串之间轻松转换
2017/03/22 Python
python3+PyQt5重新实现QT事件处理程序
2018/04/19 Python
Selenium控制浏览器常见操作示例
2018/08/13 Python
Python字典创建 遍历 添加等实用基础操作技巧
2018/09/13 Python
Python匿名函数及应用示例
2019/04/09 Python
python中rc1什么意思
2020/06/19 Python
正规的求职信范文分享
2013/12/11 职场文书
养殖人员的创业计划书范文
2013/12/26 职场文书
中学教师暑期培训方案
2014/08/27 职场文书
孝敬父母的活动方案
2014/08/31 职场文书
2015年世界无烟日活动总结
2015/02/10 职场文书
学习师德师风的心得体会(2篇)
2019/10/08 职场文书
Python 如何安装Selenium
2021/05/06 Python
Python借助with语句实现代码段只执行有限次
2022/03/23 Python