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中实现依赖注入的思路分享
Jan 15 Javascript
JavaScript常用脚本汇总(二)
Mar 04 Javascript
AngularJS实现使用路由切换视图的方法
Jan 24 Javascript
使用async-validator编写Form组件的方法
Jan 10 Javascript
详解Angular-ui-BootStrap组件的解释以及使用
Jul 13 Javascript
详解如何在vue项目中使用eslint+prettier格式化代码
Nov 10 Javascript
Vue.js 中的 v-cloak 指令及使用详解
Nov 19 Javascript
防止Layui form表单重复提交的实现方法
Sep 10 Javascript
vue router 传参获取不到的解决方式
Nov 13 Javascript
微信小程序中插入激励视频广告并获取收益(实例代码)
Dec 06 Javascript
jquery实现抽奖功能
Oct 22 jQuery
arcgis.js控制地图地体的显示范围超出区域自动弹回(实现思路)
Jan 28 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
那些年我们错过的魔术方法(Magic Methods)
2014/01/14 PHP
浅谈PHP的排列组合(如输入a,b,c 输出他们的全部组合)
2017/03/14 PHP
PHP实现将标点符号正则替换为空格的方法
2017/08/09 PHP
php获取微信基础接口凭证Access_token
2018/08/23 PHP
phpinfo无法显示的原因及解决办法
2019/02/15 PHP
基础的prototype.js常用函数及其用法
2007/03/10 Javascript
JS获得URL超链接的参数值实例代码
2013/06/21 Javascript
iframe的onreadystatechange事件在firefox下的使用
2014/04/16 Javascript
Javascript实现飞动广告效果的方法
2015/05/25 Javascript
javascript中字体浮动效果的简单实例演示
2015/11/18 Javascript
nodejs修复ipa处理过的png图片
2016/02/17 NodeJs
探索angularjs+requirejs全面实现按需加载的套路
2016/02/26 Javascript
JavaScript对象引用与赋值实例详解
2017/03/15 Javascript
Angular自定义组件实现数据双向数据绑定的实例
2017/12/11 Javascript
JavaScript实现正则去除a标签并保留内容的方法【测试可用】
2018/07/18 Javascript
JS通过位运算实现权限加解密
2018/08/14 Javascript
vue使用prop可以渲染但是打印台报错的解决方式
2019/11/13 Javascript
vue中根据时间戳判断对应的时间(今天 昨天 前天)
2019/12/20 Javascript
[03:09]DOTA2亚洲邀请赛 LGD战队出场宣传片
2015/02/07 DOTA
python生成excel的实例代码
2017/11/08 Python
python获取地震信息 微信实时推送
2019/06/18 Python
django框架模板语言使用方法详解
2019/07/18 Python
python切片(获取一个子列表(数组))详解
2019/08/09 Python
Python项目跨域问题解决方案
2020/06/22 Python
python实现b站直播自动发送弹幕功能
2021/02/20 Python
HTML5 Canvas渐进填充与透明实现图像的Mask效果
2013/07/11 HTML / CSS
深入剖析HTML5 内联框架iFrame
2016/05/04 HTML / CSS
Roxy美国官网:澳大利亚冲浪、滑雪健身品牌
2016/07/30 全球购物
英国Radley包德国官网:Radley London德国
2019/11/18 全球购物
不用游标的SQL语句有哪些
2012/09/07 面试题
腾讯公司的一个sql题
2013/01/22 面试题
艺术专业大学生自我评价
2013/09/22 职场文书
计算机应届毕业生自荐信范文
2014/02/23 职场文书
爱我中华演讲稿
2014/05/20 职场文书
空气的环保标语
2014/06/12 职场文书
docker-compose部署Yapi的方法
2022/04/08 Servers