zoukankan      html  css  js  c++  java
  • 获取鼠标进入容器方向

    <html>
    <head>
        <title>获取鼠标进入容器方向</title>
        <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
        <script type="text/javascript" src="http://dev.qwrap.com/download/latest/apps/qwrap.js?20121011"></script>
    </head>
    <body>
        <div id="rect"></div>
        <div id="box" style="position: absolute; left: 400px; top: 100px;  200px; height:200px; background-color: blue;"></div>
    </body>
    <script type="text/javascript">
        var box = W('#box');
        var boxRect = box.getRect();
        var outXY;
    
        W('#rect').html('{0}|{1}::{2}|{3}'.format(boxRect.left,boxRect.right,boxRect.top,boxRect.bottom));
    
        box.parentNode().on('mousemove', function(e){
            console.log('o');
            outXY = {
                x: e.pageX,
                y: e.pageY
            };
        });
    
        box.on('mouseenter', function(e){
            console.log('i');
            if (!outXY) {return};
    
            var dx = e.pageX - outXY.x;
            var dy = e.pageY - outXY.y;
    
            box.html('');
    
            if (outXY.x <= boxRect.left || outXY.x >= boxRect.right) {
                // x方向进入
                if (dx > 0) {
                    box.html('左进入');
                } else {
                    box.html('右进入');
                };
    
                if (outXY.x <= boxRect.left) {
                    box.html(box.html()+'<br>左进入');
                } else{
                    box.html(box.html()+'<br>右进入');
                };
            } else {
                // y方向进入
                if (dy > 0) {
                    box.html('上进入');
                } else {
                    box.html('下进入');
                };
    
                if (outXY.y <= boxRect.top) {
                    box.html(box.html()+'<br>上进入');
                } else{
                    box.html(box.html()+'<br>下进入');
                };
            };
    
            box.html('{0}<br>{1}|{2}|{3}|{4}'.format(box.html(),outXY.x,outXY.y,dx,dy));
        })
    </script>
    </html>

    tips:若父容器使用mouseout事件,则获取到的xy和容器mouseover时获取到的xy相等,且为容器内的一个不定的点。

  • 相关阅读:
    字符串中包含最多的字符
    循环左移操作 (左旋转字符串)
    翻转字符串
    和为s的连续正数序列
    Unity之使用技巧记录
    Unity资源
    各种IDE的使用
    Unity3d之MonoBehavior自带方法的执行顺序
    c#之new关键词——隐藏基类方法
    算法——各种类型对象通用的二分法插入排序
  • 原文地址:https://www.cnblogs.com/snadn/p/2823150.html
Copyright © 2011-2022 走看看