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 动态将数字金额转化为中文大写金额
May 14 Javascript
jQuery动画效果animate和scrollTop结合使用实例
Apr 02 Javascript
javascript数组随机排序实例分析
Jul 22 Javascript
JavaScript function函数种类详解
Feb 22 Javascript
微信小程序 canvas API详解及实例代码
Oct 08 Javascript
实例解析jQuery中如何取消后续执行内容
Dec 01 Javascript
基于javascript实现按圆形排列DIV元素(一)
Dec 02 Javascript
前端主流框架vue学习笔记第一篇
Jul 26 Javascript
js模块加载方式浅析
Aug 12 Javascript
Node.js Koa2使用JWT进行鉴权的方法示例
Aug 17 Javascript
ES6的Fetch异步请求的实现方法
Dec 07 Javascript
Nuxt v-bind绑定img src不显示的解决
Dec 05 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保留两位小数的几种方法
2019/07/24 PHP
JavaScript 选中文字并响应获取的实现代码
2011/08/28 Javascript
JQuery中$.ajax()方法参数详解及应用
2013/12/12 Javascript
键盘上一张下一张兼容IE/google/firefox等浏览器
2014/01/28 Javascript
浏览器兼容性问题大汇总
2015/12/17 Javascript
js实现精确到秒的倒计时效果
2016/05/29 Javascript
JS获取复选框的值,并传递到后台的实现方法
2016/05/30 Javascript
jQuery EasyUI Tab 选项卡问题小结
2016/08/16 Javascript
jquery实现网页定位导航
2016/08/23 Javascript
js封装tab标签页实例分享
2016/12/19 Javascript
微信小程序实战之运维小项目
2017/01/17 Javascript
微信小程序实战之自定义toast(6)
2017/04/18 Javascript
vue下拉列表功能实例代码
2018/04/08 Javascript
jQuery中常用动画效果函数知识点整理
2018/08/19 jQuery
jquery实现选项卡切换代码实例
2019/05/14 jQuery
微信小程序实现搜索指定景点周边美食、酒店
2019/05/18 Javascript
多个vue子路由文件自动化合并的方法
2019/09/03 Javascript
JavaScript 浏览器对象模型BOM原理与常见用法实例分析
2019/12/16 Javascript
Python中设置变量作为默认值时容易遇到的错误
2015/04/03 Python
Python字符串和文件操作常用函数分析
2015/04/08 Python
Python爬虫:通过关键字爬取百度图片
2017/02/17 Python
python中的for循环
2018/09/28 Python
Python Pickle 实现在同一个文件中序列化多个对象
2019/12/30 Python
打包PyQt5应用时的注意事项
2020/02/14 Python
python 3.8.3 安装配置图文教程
2020/05/21 Python
python实现定时发送邮件
2020/12/23 Python
VELTRA台湾:世界自由行专家
2017/08/15 全球购物
应届生保险求职信
2013/11/11 职场文书
乡镇信息公开实施方案
2014/03/23 职场文书
毕业留言寄语大全
2014/04/10 职场文书
《三顾茅庐》教学反思
2014/04/10 职场文书
《东方明珠》教学反思
2014/04/20 职场文书
学校组织向国旗敬礼活动方案(中小学适用)
2014/09/27 职场文书
房屋出售授权委托书
2014/10/12 职场文书
六五普法学习心得体会
2016/01/21 职场文书
Pytorch GPU内存占用很高,但是利用率很低如何解决
2021/06/01 Python