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 相关文章推荐
javascript 面向对象的JavaScript类
May 04 Javascript
JavaScript 事件系统
Jul 22 Javascript
uploadify 3.0 详细使用说明
Jun 18 Javascript
Jquery显示、隐藏元素以及添加删除样式
Aug 09 Javascript
JS设置获取cookies的方法
Jan 26 Javascript
自制的文件上传JS控件可支持IE、chrome、firefox etc
Apr 18 Javascript
ECHO.js 纯javascript轻量级延迟加载的实例代码
May 24 Javascript
最全面的百度地图JavaScript离线版开发
Sep 10 Javascript
详解vue表单——小白速看
Apr 08 Javascript
解决vue v-for 遍历循环时key值报错的问题
Sep 06 Javascript
node 标准输入流和输出流代码实例
Sep 19 Javascript
element-ui中dialog弹窗关闭按钮失效的解决
Sep 22 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输出控制功能在简繁体转换中的应用
2006/10/09 PHP
PHP 字符串分割和比较
2009/10/06 PHP
php 邮件发送问题解决
2014/03/22 PHP
ThinkPHP中自定义错误页面和提示页面实例
2014/11/22 PHP
php中Ioc(控制反转)和Di(依赖注入)
2017/05/07 PHP
php+jQuery实现的三级导航栏下拉菜单显示效果
2017/08/10 PHP
php实现微信模板消息推送
2018/03/30 PHP
ie和firefox不兼容的解决方法集合
2009/04/28 Javascript
jquery下操作HTML控件的实现代码
2010/01/12 Javascript
javascript开发中因空格引发的错误
2010/11/08 Javascript
javascript常用方法、属性集合及NodeList 和 HTMLCollection 的浏览器差异
2010/12/25 Javascript
javascript的console.log()用法小结
2012/05/31 Javascript
web开发人员学习jQuery的6大理由及jQuery的优势介绍
2013/01/03 Javascript
javascript中的变量作用域以及变量提升详细介绍
2013/10/24 Javascript
js读取被点击次数的简单实例(从数据库中读取)
2014/03/07 Javascript
使用js画图之饼图
2015/01/12 Javascript
javascript显式类型转换实例分析
2015/04/25 Javascript
基于BootStrap Metronic开发框架经验小结【九】实现Web页面内容的打印预览和保存操作
2016/05/12 Javascript
深入理解Javascript中的自执行匿名函数
2016/06/03 Javascript
JS作为值的函数用法示例
2016/06/20 Javascript
vue.js高德地图实现热点图代码实例
2019/04/18 Javascript
基于Vue SEO的四种方案(小结)
2019/07/01 Javascript
Python交换变量
2008/09/06 Python
videocapture库制作python视频高速传输程序
2013/12/23 Python
Python的Flask框架中使用Flask-Migrate扩展迁移数据库的教程
2016/06/14 Python
Python编程django实现同一个ip十分钟内只能注册一次
2017/11/03 Python
python将字符串转换成json的方法小结
2019/07/09 Python
浅析PEP570新语法: 只接受位置参数
2019/10/15 Python
HTML5实现的图片无限加载的瀑布流效果另带边框圆角阴影
2014/03/07 HTML / CSS
canvas 橡皮筋式线条绘图应用方法
2019/02/13 HTML / CSS
简短的公司员工自我评价分享
2013/11/13 职场文书
经销商培训邀请函
2014/01/21 职场文书
总经理的岗位职责
2014/02/23 职场文书
教师节祝酒词
2015/08/11 职场文书
准备去美国留学,那么大学申请文书应该怎么写?
2019/08/12 职场文书
python神经网络学习 使用Keras进行回归运算
2022/05/04 Python