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 相关文章推荐
jquery BS,dialog控件自适应大小
Jul 06 Javascript
自动最大化窗口的Javascript代码
May 22 Javascript
为jquery的ajaxfileupload增加附加参数的方法
Mar 04 Javascript
关于javascript模块加载技术的一些思考
Nov 28 Javascript
早该知道的7个JavaScript技巧
Jun 21 Javascript
用JS实现轮播图效果(二)
Jun 26 Javascript
Angularjs中controller的三种写法分享
Sep 21 Javascript
解决jquery有正确返回值但不执行success函数的问题
Aug 20 jQuery
小程序云开发初探(小结)
Oct 24 Javascript
element ui table 增加筛选的方法示例
Nov 02 Javascript
vue自定义正在加载动画的例子
Nov 14 Javascript
详解JavaScript中的执行上下文及调用堆栈
Apr 29 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中过滤非法字符的具体实现
2013/10/29 PHP
php 静态属性和静态方法区别详解
2017/04/09 PHP
php二维码生成以及下载实现
2017/09/28 PHP
JavaScript 核心参考教程 内置对象
2009/10/13 Javascript
jquery 新浪网易的评论块制作
2010/07/01 Javascript
js 如何实现对数据库的增删改查
2012/11/23 Javascript
JavaScript中发布/订阅模式的简单实例
2014/11/05 Javascript
Javascript冒泡排序算法详解
2014/12/03 Javascript
JS动态添加iframe的代码
2015/09/14 Javascript
javascript检测flash插件是否被禁用的方法
2016/01/14 Javascript
JavaScript中关联原型链属性特性
2016/02/13 Javascript
Vue 表单控件绑定的实现示例
2017/08/11 Javascript
JavaScript寄生组合式继承实例详解
2018/01/06 Javascript
jQuery实现DIV响应鼠标滑过由下向上展开效果示例【测试可用】
2018/04/26 jQuery
Node.JS发送http请求批量检查文件中的网页地址、服务是否有效可用
2019/11/20 Javascript
探究数组排序提升Python程序的循环的运行效率的原因
2015/04/01 Python
Python简单实现安全开关文件的两种方式
2016/09/19 Python
Python多线程扫描端口代码示例
2018/02/09 Python
浅谈tensorflow1.0 池化层(pooling)和全连接层(dense)
2018/04/27 Python
pandas把所有大于0的数设置为1的方法
2019/01/26 Python
我喜欢你 抖音表白程序python版
2019/04/07 Python
Django模型序列化返回自然主键值示例代码
2019/06/12 Python
Django中如何使用sass的方法步骤
2019/07/09 Python
python实现LRU热点缓存及原理
2019/10/29 Python
Python HTMLTestRunner可视化报告实现过程解析
2020/04/10 Python
python的reverse函数翻转结果为None的问题
2020/05/11 Python
PHP如何自定义函数
2016/09/16 面试题
四年的大学生生活自我评价
2013/12/09 职场文书
药剂专业学生求职信范文
2013/12/28 职场文书
小学二年级评语
2014/04/21 职场文书
责任书格式范文
2014/07/28 职场文书
习近平在党的群众路线教育实践活动总结大会上的讲话
2014/10/21 职场文书
客房领班岗位职责
2015/02/11 职场文书
Python函数式编程中itertools模块详解
2021/09/15 Python
Minikube搭建Kubernetes集群
2022/03/31 Servers
MySQL中TIMESTAMP类型返回日期时间数据中带有T的解决
2022/12/24 MySQL