JQuery获取鼠标进入和离开容器的方向

 更新时间:2016年12月29日 14:18:56   作者:Kalo  
本文主要分享了基于JQuery的获取鼠标进入和离开容器方向的实现代码,具有一定的参考价值。下面跟着小编一起来看下吧

做动画时,需要判断鼠标进入和退出容器的方向。网上找到的基于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>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持脚本之家!

相关文章

  • jquery 校验中国身份证号码实例详解

    jquery 校验中国身份证号码实例详解

    这篇文章主要介绍了jquery 校验中国身份证号码实例详解的相关资料,需要的朋友可以参考下
    2017-04-04
  • 制作jquery遮罩层效果导航菜单代码分享

    制作jquery遮罩层效果导航菜单代码分享

    我们将创建一个简单的jquery菜单,只要我们悬停在导航栏的区域里,将展示给我们的画面是:明亮的菜单在稍显黑暗的背景图中脱颖而出
    2013-12-12
  • BootStrap glyphicon图标无法显示的解决方法

    BootStrap glyphicon图标无法显示的解决方法

    如果不注意bootstrap引入css和fonts的规范,则可能会导致bootstrap 在显示glyphicon图标时无法正常显示,显示为方框。该怎么解决呢?下面小编给大家解答下
    2016-09-09
  • jquery 使用简明教程

    jquery 使用简明教程

    jQuery是目前使用最广泛的javascript函数库。据统计,全世界排名前100万的网站,有46%使用jQuery,远远超过其他库。微软公司甚至把jQuery作为他们的官方库。对于网页开发者来说,学会jQuery是必要的。因为它让你了解业界最通用的技术,为将来学习更高级的库打下基础,并且确实可以很轻松地做出许多复杂的效果
    2014-03-03
  • jQuery插件扩展测试实例

    jQuery插件扩展测试实例

    这篇文章主要介绍了jQuery插件扩展方法,结合一个动态改变元素样式功能实例分析了jQuery插件扩展的实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2016-06-06
  • jQuery Attributes(属性)的使用(二、类篇)

    jQuery Attributes(属性)的使用(二、类篇)

    本系列文章主要讲述jQuery框架的属性(Attributes)使用方法,我将以实例方式进行讲述,以简单,全面为基础,不会涉及很深,我的学习方法:先入门,后进阶!
    2009-12-12
  • jQuery实现点击滚动到指定元素上的方法分析

    jQuery实现点击滚动到指定元素上的方法分析

    这篇文章主要介绍了jQuery实现点击滚动到指定元素上的方法,结合实例形式分析了jQuery响应鼠标事件动态操作页面元素属性的相关相关使用技巧,需要的朋友可以参考下
    2020-03-03
  • Jquery ajax执行顺序 返回自定义错误信息(实例讲解)

    Jquery ajax执行顺序 返回自定义错误信息(实例讲解)

    由于Jquery中的Ajax的async默认是true(异步请求),如果想一个Ajax执行完后再执行另一个Ajax, 需要把async=false就可以了
    2013-11-11
  • jQuery插件HighCharts绘制的2D堆柱状图效果示例【附demo源码下载】

    jQuery插件HighCharts绘制的2D堆柱状图效果示例【附demo源码下载】

    这篇文章主要介绍了jQuery插件HighCharts绘制的2D堆柱状图效果,结合完整实例形式分析了jQuery插件HighCharts绘制2D柱状图的实现技巧与相关注意事项,并附带demo源码供读者下载参考,需要的朋友可以参考下
    2017-03-03
  • NiftyCube——轻松实现圆角边框

    NiftyCube——轻松实现圆角边框

    这篇文章主要介绍了NiftyCube——轻松实现圆角边框
    2007-02-02

最新评论