• JS——鼠标在盒子中的坐标


    核心思想:

    1、复杂版本:鼠标pageX、pageY的值减去盒子距离顶端的offsetLeft、offsetTop值就是鼠标在盒子中的坐标

    2、简单版本:offsetX、offsetY就可获取鼠标相对于事件触发对象的坐标,以事件触发对象左上角为基准点

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            * {
                padding: 0;
                margin: 0;
            }
    
            div {
                width: 400px;
                height: 400px;
                background-color: #ccc;
                margin: 150px auto;
                font: 600 17px/400px "simsun";
                text-align: center;
            }
    
            span {
                color: red;
            }
        </style>
    </head>
    <body>
    <div>
        鼠标在盒子中的坐标X:000 Y:000
    </div>
    <script>
        var divEle = document.getElementsByTagName("div")[0];
        divEle.onmousemove = function (ev) {
            ev = ev || window.event;
            var pageX = ev.pageX || scroll().left + ev.clientX;
            var pageY = ev.pageY || scroll().top + ev.clientY;
            var x = pageX - divEle.offsetLeft;
            var y = pageY - divEle.offsetTop;
            divEle.innerHTML = "鼠标在盒子中的坐标X:" + "<span>" + x + "</span>" +
                " Y:" + "<span>" + y + "</span>";
        }
    
        function scroll() {
            return {
                "top": window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop,
                "left": window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft
            };
        }
    </script>
    </body>
    </html>
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            * {
                padding: 0;
                margin: 0;
            }
    
            div {
                width: 400px;
                height: 400px;
                background-color: #ccc;
                margin: 150px auto;
                font: 600 17px/400px "simsun";
                text-align: center;
            }
    
            span {
                color: red;
            }
        </style>
    </head>
    <body>
    <div>
        鼠标在盒子中的坐标X:000 Y:000
    </div>
    <script>
        var divEle = document.getElementsByTagName("div")[0];
        divEle.onmousemove = function (ev) {
            ev = ev || window.event;
            var x = ev.offsetX;
            var y = ev.offsetY;
            divEle.innerHTML = "鼠标在盒子中的坐标X:" + "<span>" + x + "</span>" +
                " Y:" + "<span>" + y + "</span>";
        }
    </script>
    </body>
    </html>

  • 相关阅读:
    CF763C Timofey and Remoduling
    CF762E Radio Stations
    CF762D Maximum Path
    CF763B Timofey and Rectangles
    URAL1696 Salary for Robots
    uva10884 Persephone
    LA4273 Post Offices
    SCU3037 Painting the Balls
    poj3375 Network Connection
    Golang zip压缩文件读写操作
  • 原文地址:https://www.cnblogs.com/wuqiuxue/p/7977000.html
Copyright © 2020-2023  润新知