判断鼠标进入容器方向

<script src="jquery-3.2.1.min.js"></script>
<script>
    $("#div").on("mouseenter mouseleave",function(e) {
        var w = $(this).width(); // 得到盒子宽度
        var h = $(this).height();// 得到盒子高度
        var x = (e.pageX - this.offsetLeft - (w / 2)) * (w > h ? (h / w) : 1);
        // 获取x值
        var y = (e.pageY - this.offsetTop - (h / 2)) * (h > w ? (w / h) : 1);
        // 获取y值
        var direction = Math.round((((Math.atan2(y, x) * (180 / Math.PI)) + 180) / 90) + 3) % 4; //direction的值为“0,1,2,3”分别对应着“上,右,下,左”
        // 将点的坐标对应的弧度值换算成角度度数值
        var dirName = new Array(‘上方‘, ‘右侧‘, ‘下方‘, ‘左侧‘);
        if (e.type == ‘mouseenter‘) {
            $(this).html(dirName[direction] + ‘进入‘);
        } else {
            $(this).html(dirName[direction] + ‘离开‘);
        }
    })

</script>

原理代码:

以div容器的中心点作为圆心,以高和宽的最小值作为直径画圆,将圆以[π/4,3π/4),[3π/4,5π/4),[5π/4,7π/4),[-π/4,π/4)划分为四个象限,鼠标进入容器时的点的atan2(y,x)值在这四个象限里分别对应容器边框的下,右,上,左。

计算x坐标值时,如果点原来的x坐标的绝对值大于圆的半径值,则按 h/w 这个比例进行缩小,使得到的点的位置在容器的边界位置所对应的象限区间里。 y 坐标的计算也是一样。

原文地址:https://www.cnblogs.com/lhh520/p/8981570.html

时间: 2024-10-09 07:49:05

判断鼠标进入容器方向的相关文章

一天一点新东西-鼠标进入容器方向判断

很久之前思考的这个东西,怎么判断鼠标是从哪个方向进入元素的?有代码和一点点解释,用法很精妙,记下来,希望以后看见能记起. index.html <!DOCTYPE html><html><head><style>#wrap{height:100px;width:100px;background-color:#000000;}</style> <script src="http://libs.baidu.com/jquery/1.1

判断鼠标从哪个方向进入容器

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>判断鼠标进入方向</title> </head> <body> <style> html,body{margin:0;padding:0;} #wrap{width:300px;height:300px;background:#33aa00;margin:50p

判断鼠标移入移出方向设置

原理:以div容器的中心点作为圆心,以高和宽的最小值作为直径画圆,将圆以[π/4,3π/4),[3π/4,5π/4),[5π/4,7π /4),[-π/4,π/4)划分为四个象限,鼠标进入容器时的点的atan2(y,x)值在这四个象限里分别对应容器边框的下,右,上,左.如下图所示 Js代码 var x = (e.pageX - this.offsetLeft - (w / 2)) * (w > h ? (h / w) : 1); 计算x坐标值时,如果点原来的x坐标的绝对值大于圆的半径值,则按 h

判断鼠标进入容器的方向小Demo

参考资料: 贤心博客:http://sentsin.com/web/112.html, Math.atan2(y,x) 解释 :http://www.w3school.com.cn/jsref/jsref_atan2.asp; Demo: Demo 截图: 代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-t

JS判断鼠标从哪个方向进入DIV容器

$(".flash").bind("mouseenter mouseleave",function(e){ /** the width and height of the current div **/ var w = $(this).width(); var h = $(this).height(); /** calculate the x and y to get an angle to the center of the div from that x and

判断鼠标移入元素方向

$(this).bind("mouseenter mouseleave",function(e){ var w = $(this).width(); var h = $(this).height(); var x = (e.pageX - $(this).offset().left - (w / 2)) * (w > h ? (h / w) : 1); var y = (e.pageY - $(this).offset().top - (h / 2)) * (h > w ?

判断鼠标的移入方向

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style media="screen"> body { height: 3000px; } * { padding: 0; margin: 0; } ul { list-style: no

基于JQuery的获取鼠标进入和离开容器方向的实现

基于JQuery的获取鼠标进入和离开容器方向的实现 做动画时,需要判断鼠标进入和退出容器的方向.网上找到的基于JQuery的实现方法,用函数封装了一下,写了一个示例.注意绑定鼠标事件用的是on(),所以JQuery版本需高于1.7. 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>判断鼠标从哪个方向进入和离开容器</title&g

js中判断鼠标滚轮方向的方法

  前  言 LiuDaP 最近无聊,在做自己的个人站,其中用到了一个关于鼠标滚轮方向判断的方法,今天闲来无聊,就给大家介绍一下吧!!!! 在介绍鼠标事件案例前,让我们先稍微了解一下js中的event对象 一.JS中的Event对象 Event对象:它代表的是事件的状态,例如可以表示鼠标的位置.鼠标按钮的状态.键盘按键的状态等等. >>>事件通常与函数结合使用,函数不会在事件发生前被执行! 二.JS中如何判断鼠标滚轮方向 判断鼠标滚轮的方向,有着两个派别:一是谷歌.IE派别(这次IE没有