求鼠标在一个盒子内的坐标

具体的思路是:
1.得到鼠标所在的位置通过e.clientX,e.clientY来获得

  1. 得到当前盒子距离浏览器左边的距离,可以通过offsetLeft,offsetTop来获取,但是必须注意的是offsetLeft,offsetTop是相对于父级元素(这个父级元素具有定位属性)而言的,如果父级元素没有定位就一直网上找,直到找到具有定位的父级元素,如果多个父级元素同时有定位,那么将每一个得到的offsetLeft相加就会得到到浏览器的距离

  2. 用鼠标的位置 - 盒子到浏览器边缘的距离就会得到鼠标在盒子内的距离,

example:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>求鼠标在盒子内的坐标</title>
    <style type="text/css">
        *{
            margin: 0;
            padding: 0; 
        }
        .box{
            width: 400px;
            height: 400px;
            background-color: pink;
            margin: 100px;
        }
    </style>
  </head>
  <body>
    <div class="box"></div>
    <script type="text/javascript">
        var div = document.getElementsByTagName("div")[0]
        div.onclick = function (e) {
            var event = e || window.event
            var x = event.clientX - this.offsetLeft
            var y = event.clientY -this.offsetTop
            this.innerHTML = 'x=' + x + ', y='
        }
    </script>
  </body>
</html>
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • offset家族三大家族和一个事件对象三大家族(offset/scroll/client)事件对象/event ...
    Yuann阅读 4,569评论 0 5
  • 本文是针对刚学编程的小白,都是一些基础知识,如果想了解更多深层一点的东西,欢迎移步本人博客!! 博客地址 点击跳转...
    西巴撸阅读 3,790评论 0 2
  • 一、三大系列:offset家族、scroll家族、client 1、offset 1.1.简介 offset家族就...
    magic_pill阅读 4,328评论 0 4
  • offset家族 offset 自己的目的: js中有一套方便的获取元素尺寸的办法就是offset家族; 1/...
    越IT阅读 13,883评论 1 22
  • 曾经觉得沉迷游戏无法自拔的是我, 后来面对现实不知所措的才是我. 曾经觉得作业不就是随手应付了事就好, 后来一笔一...
    赫尔今天给你带来好运了吗i阅读 2,415评论 0 2