美文网首页
实时获取鼠标坐标(全兼容版)

实时获取鼠标坐标(全兼容版)

作者: 仙姑本姑 | 来源:发表于2019-12-15 17:35 被阅读0次

首先,在页面上做出一个div,目标是当鼠标在此div内移动时,可以实时显示其鼠标位置坐标。

第一步:建立div 可使用alert查看div内鼠标经过时是否调用函数

    <style type="text/css">
        #box {
            position: absolute;
            width: 200px;
            height: 100px;
            background-color: brown;
        }
    </style>
<body>
    <div id="box"></div>
</body>
<script type="text/javascript">
    var box = document.getElementById("box");
    box.onmousemove = function(event) {
        alert(event);
    }
</script>
事件对象:
  • 当事件的响应函数被触发时,浏览器每次都会将一个事件对象作为实参传递进相应函数,上段代码中,event可以是任何字母,如a,b,c...并不必须是event
  • 在事件对象中,封装了当前事件的一切信息,如:鼠标的坐标,键盘的哪个按键被按下,鼠标滚轮滚动的方向等等

特别注意:

在IE8以下中,响应函数被触发时不会传递事件对象这样的实参,event会是undefined,此时envent.clientX等都会报错

解决方法:

在IE8以下中,事件对象是作为window对象的属性保存的,所以此时,将event.clientX改为window.event.clientX即可,此写法同样兼容chrome,IE,但不兼容火狐,如果要保证所有兼容——
法一:

if(!event){
  event=window.event.clientX;
}

法二:常用写法

event = event || window.event
clientX可以获得鼠标指针的水平坐标
clientY可以获得鼠标指针的垂直坐标
   var box = document.getElementById("box");
    box.onmousemove = function(event) {
        var x = event.clientX;
        var y = event.clientY;
        alert("x为:" + x + "y为:" + y);
    }

此时可以弹出坐标

为观察更直观,在下方再设置一个div:showsite,显示坐标

 #box {
            width: 200px;
            height: 100px;
            background-color: brown;
        }
        
        #showsite {
            width: 200px;
            height: 50px;
            background-color: darkslateblue;
        }
 var box = document.getElementById("box");
    var showbox = document.getElementById("showsite");
    box.onmousemove = function(event) {
        var x = event.clientX;
        var y = event.clientY;
        showsite.innerHTML = "x为:" + x + "y为:" + y;
    }

效果为:


b426b3b67422a9348e5d7f1c38eeb05.png

完整代码:

<!DOCTYPE  HTML>
<html>

<head>
    <meta charset="UTF-8">
    <title>DOM-login</title>
    <style type="text/css">
        #box {
            width: 200px;
            height: 100px;
            background-color: brown;
        }
        
        #showsite {
            width: 200px;
            height: 50px;
            background-color: darkslateblue;
        }
    </style>
    <script type="text/javascript">
        window.onload = function() {
            var box = document.getElementById("box");
            var showbox = document.getElementById("showsite");
            box.onmousemove = function(event) {
                event = event || window.event;
                var x = event.clientX;
                var y = event.clientY;
                showsite.innerHTML = "x为:" + x + "y为:" + y;
            }
        }
    </script>
</head>

<body>
    <div id="box"></div>
    <div id="showsite"></div>
</body>


</html>

相关文章

网友评论

      本文标题:实时获取鼠标坐标(全兼容版)

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