Rumah  >  Artikel  >  hujung hadapan web  >  JavaScript如何获取鼠标点击的位置?获取的三种方法汇总

JavaScript如何获取鼠标点击的位置?获取的三种方法汇总

云罗郡主
云罗郡主asal
2018-10-29 13:41:4111878semak imbas

其实我们一直都在dom中和元素打交道,这也是手机交互的一个比较常用的方面,但是很多程序员比较失望,在不同的浏览器中,会出现不同的结果,下面我们就来讲一下利用js如何获取鼠标点击的位置,并且为您总结详细的教程。

微信截图_20181029134039.png

一:鼠标相对于屏幕

如果我们涉及在鼠标点击的位置,比较简单的话,我们就可以获取鼠标点击之后,利用screenX,screenY来确定点击的大致位置,从而判断出与屏幕的上边距和下边距的相对位置,我们不要考虑iframe等一些因素,但是在不同的浏览器中,表现还是很相同的。

例:

function getMousePos(event) {             
     var e = event || window.event;             
      return {'x':e.screenX,'y':screenY}  
}

二:鼠标相对于浏览器的窗口

如果通过以上简单的代码来确定位置,往往这些都还不够,因为在大致的情况下,我们需要得到鼠标相对于浏览器窗口的坐标,分别获取到鼠标现对于窗口的的上边距和左边距,可以利用clientX,clientY表示。

例如:

function getMousePos(event) {              
     var e = event || window.event;              
     return {'x':e.clientX,'y':clientY} 
}

三:鼠标相对于文档

我们可以利用clientX与clientY来得到当前浏览器窗口的坐标,但是这些条件都是由限制的,当我如出现在页面的滚动的情况下,那么相对于文档的坐标怎么办呢,这时候我们只要加上滚动的位移就可以了。

例如:

function getMousePos(event) {
    var e = event || window.event;
    var scrollX = document.documentElement.scrollLeft || document.body.scrollLeft;
    var scrollY = document.documentElement.scrollTop || document.body.scrollTop;
    var x = e.pageX || e.clientX + scrollX;
    var y = e.pageY || e.clientY + scrollY;
    //alert('x: ' + x + '\ny: ' + y);
    return { 'x': x, 'y': y };
}

目前火狐浏览器的问题会简单的多,因为火狐支持pageX,与pageY这两个属性,已经把页面滚动计算在内了。

以上就是对JavaScript如何获取鼠标点击的位置?获取的三种方法汇总的全部介绍,如果你想了解更多有关JavaScript视频教程,请关注php中文网。


Atas ialah kandungan terperinci JavaScript如何获取鼠标点击的位置?获取的三种方法汇总. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn