美文网首页
判断鼠标进入div的方向

判断鼠标进入div的方向

作者: overisover | 来源:发表于2017-01-11 15:43 被阅读0次
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="lib/jquery-2.2.3.js"></script>
    <style>
        .box{
            width:300px;
            height: 300px;
            background: #c1c;
            margin:50px auto;
        }
    </style>
</head>
<body>
    <div class="box"></div>

    <script type="text/javascript">
        var $box=$('.box')
        var decoration='';
        $box.mouseenter(function(ev){
            var $this=$(this)
            var offset=$this.offset();//获取div在页面的坐标
            var H=$this.innerHeight();//获取当前div的高
            var W=$this.innerWidth();//获取当前div的宽

            var center={//获取当前div的宽中心点的位置
                x:offset.left+W/2,
                y:offset.top+H/2
            }
            mouse={//获取鼠标进入时的坐标
                x:ev.clientX,
                y:ev.clientY
            }
            var angle=Math.atan(H/W);//获取参照角度,得到的值是弧度
            angle=angle*(180/(Math.PI))//换算成角度
            var mouseAngle=Math.atan((mouse.y-center.y)/(mouse.x-center.x));//鼠标进入位置的角度,以X轴为水平参照线,鼠标与中心点连线与水平轴的夹角
            mouseAngle=mouseAngle*(180/Math.PI)//换算成角度
            mouseAngle=Math.abs(mouseAngle)//因为有正负,这里取绝对值
            console.log(mouseAngle)
            if(mouse.x<center.x && mouse.y<center.y){//判断进入的位置分为4个区域,以中心的水平,垂直线,
                if(mouseAngle>angle){//判断角度。得出进入方向
                    decoration='top'
                }else{
                    decoration='left'
                }
                
            }else if(mouse.x>center.x && mouse.y<center.y){
                if(mouseAngle>angle){
                    decoration='top'
                }else{
                    decoration='right'
                }
            }
            else if(mouse.x>center.x && mouse.y>center.y){
                if(mouseAngle>angle){
                    decoration='bottom'
                }else{
                    decoration='right'
                }
            }
            else if(mouse.x<center.x && mouse.y>center.y){
                if(mouseAngle>angle){
                    decoration='bottom'
                }else{
                    decoration='left'
                }
            }
            console.log(decoration)

        })
        
    </script>
</body>
</html>

相关文章

  • CSS3学习之3D

    小案例 判断鼠标进入容器方向$("div").on("mouseenter mouseleave",functio...

  • 判断鼠标进入div的方向

  • 巧用jquery

    //判断有没有元素 if ($("div").length>0) { //do }else{ } //判断是鼠标右...

  • js判断鼠标进入容器的方向)

    Math.atan2(y,x)注意:该函数的参数顺序,第一个参数是y坐标,第二个参数是x坐标,这与我们平常的写法(...

  • 判断鼠标从哪个方向进入元素

    实现的效果动图如下 理清需求 拿到效果图的第一步,理清下需求~ 首先,元素有左右上下四个方向。这边的问题在我如何在...

  • 前端面试题之CSS

    题目:如下图,当鼠标移动到右边的div时,左边的div变为红色;当鼠标移动到左边的div时,右边的div变为红色。...

  • javascript 鼠标手势判断&&运行轨迹判

    在工作中,需要对鼠标的运行轨迹做一个大致判断以便能绘出更合理的图形 1、判断鼠标运行方向 在方向上定义了left、...

  • javascript判断鼠标移入方向

    如何用js代码来判断鼠标移入的方向呢?基本思路是将一个元素按照对角线分成4份,然后按照鼠标事件返回的角度值来判断。...

  • JavaScript--拖拽原理

    拖拽雏形:html+css 代码: 问题:如果鼠标拖的快点,会发现鼠标从div出去后,这个时候div不会跟着鼠标走...

  • JS判断鼠标移入元素的方向

    这里的关键主要是判断鼠标是从哪个方向进入和离开的 demo上面代码的重点主要是在direction的值的计算Mat...

网友评论

      本文标题:判断鼠标进入div的方向

      本文链接:https://www.haomeiwen.com/subject/hbzkbttx.html