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 相关文章推荐
番茄的表单验证类代码修改版
Jul 18 Javascript
jquery禁止输入数字以外的字符的示例(纯数字验证码)
Apr 10 Javascript
jQuery中has()方法用法实例
Jan 06 Javascript
javaScript实现滚动新闻的方法
Jul 30 Javascript
JavaScript禁止复制与粘贴的实现代码
May 16 Javascript
AngularJS 如何在控制台进行错误调试
Jun 07 Javascript
史上最全JavaScript常用的简写技巧(推荐)
Aug 17 Javascript
cordova入门基础教程及使用中遇到的一些问题总结
Nov 14 Javascript
微信小程序实现购物车代码实例详解
Aug 29 Javascript
Vue实现Header渐隐渐现效果的实例代码
Nov 05 Javascript
angular8.5集成TinyMce5的使用和详细配置(推荐)
Nov 16 Javascript
使用webpack和rollup打包组件库的方法
Feb 25 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/06/20 PHP
利用php实现禁用IE和火狐的缓存问题
2012/12/03 PHP
php检查是否是ajax请求的方法
2015/04/16 PHP
大家须知简单的php性能优化注意点
2016/01/04 PHP
javascript 兼容鼠标滚轮事件
2009/04/07 Javascript
javascript 全角转换实现代码
2009/07/17 Javascript
jQuery.Autocomplete实现自动完成功能(详解)
2010/07/13 Javascript
Vue利用canvas实现移动端手写板的方法
2018/05/03 Javascript
Vue子组件向父组件通信与父组件调用子组件中的方法
2018/06/22 Javascript
vue中tab选项卡的实现思路
2018/11/25 Javascript
详解可以用在VS Code中的正则表达式小技巧
2019/05/14 Javascript
javascript刷新父页面方法汇总详解
2019/10/10 Javascript
webpack优化之代码分割与公共代码提取详解
2019/11/22 Javascript
JavaScript ECMA-262-3 深入解析(二):变量对象实例详解
2020/04/25 Javascript
解决vue项目本地启动时无法携带cookie的问题
2021/02/06 Vue.js
Python函数的参数常见分类与用法实例详解
2019/03/30 Python
详解python配置虚拟环境
2019/04/08 Python
Python求离散序列导数的示例
2019/07/10 Python
对Django中内置的User模型实例详解
2019/08/16 Python
postman传递当前时间戳实例详解
2019/09/14 Python
Python如何在windows环境安装pip及rarfile
2020/06/15 Python
python如何代码集体右移
2020/07/20 Python
Python使用xpath实现图片爬取
2020/09/16 Python
西班牙汉普顿小姐:购买帆布鞋和太阳镜
2016/10/23 全球购物
墨西哥网上超市:Superama
2018/07/10 全球购物
英国时尚女装购物网站:Missguided
2018/08/23 全球购物
eBay英国购物网站:eBay.co.uk
2019/06/19 全球购物
在C语言中"指针和数组等价"到底是什么意思?
2014/03/24 面试题
大学生怎样进行自我评价
2013/12/07 职场文书
人事任命书范文
2014/06/04 职场文书
计划生育工作汇报
2014/10/28 职场文书
给朋友的道歉短信
2015/05/12 职场文书
小学安全教育主题班会
2015/08/12 职场文书
如何在pycharm中快捷安装pip命令(如pygame)
2021/05/31 Python
Win11如何设置右键单击显示所有选项?Win11右键单击显示所有选项设置教程
2022/04/08 数码科技
SQL Server中使用表变量和临时表
2022/05/20 SQL Server