文章导航

JavaScript offsetX 属性

2019-4-9 21:00| 作者: admin| 查看: 188| 评论: 0|来自: 蚂蚁部落

实际应用中经常需要获取鼠标指针的坐标,比如在浏览器客户区中的坐标,在整个文档中的坐标。

随着版本的更新,实现上述类似功能越来越方便,因为JavaScript已经内置对应属性:

(1).获取鼠标指针在客户区中的坐标可以参阅JavaScript clientX 属性一章节。

(2).获取鼠标指针在整个文档中的坐标可以参阅JavaScript pageX 属性一章节。

有时候也需要获取鼠标指针在指定元素中的坐标,此需求引出本文的主题offsetX属性。

此属性属于事件对象,关于事件对象更多内容可以参阅JavaScript 事件对象一章节。

理解此属性可以从其名称入手,offsetX由offset与x合成,offset翻译成汉语具有"偏移量"的意思,x表示横坐标。

那么有理由推断,此属性用于获取鼠标指针在指定元素x轴方向的偏移量,也就是在x轴的坐标,事实也是如此。

特别说明:此属性当前处于实现阶段,但是浏览器支持度很不错。

下面首先介绍一下此属性所处的坐标系,图示如下:

a:3:{s:3:\"pic\";s:43:\"portal/201904/09/210109i1bghh7ij94j1z9j.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

上述是一个简单的坐标系示意图,简单说明如下:

(1).灰色的是一个HTML元素,我们要获取鼠标指针在此元素中的x轴坐标。

(2).元素的左上角是坐标系的原点(0,0)位置,横向为x轴,纵向为y轴。

(3).与数学概念上的坐标系不同,y轴向下为正,向上为负,这一点要注意一下。

语法结构:

[JavaScript] 纯文本查看 复制代码
event.offsetX

浏览器支持:

(1).IE浏览器支持此属性。

(2).edge浏览器支持此属性。

(3).火狐浏览器支持此属性。

(4).Opera浏览器支持此属性。

(5).谷歌浏览器支持此属性。

(6).safria浏览器支持此属性。

实例代码:

[HTML] 纯文本查看 复制代码运行代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>蚂蚁部落</title>
<style type="text/css">
#ant{
  width:200px;
  height:200px;
  background-color:#639;
  margin:0px auto;
}
#zuobiao{
  width:150px;
  margin:0px auto;
}
</style>
<script>
window.onload=function(){
  let odiv = document.getElementById("ant");
  let zuobiao=document.getElementById("zuobiao");
  odiv.onmousemove = function (ev) {
    zuobiao.innerHTML="X:"+ev.offsetX+" Y:"+ev.offsetY;
  }
}
</script>
</head>
<body>
<div id="ant"></div>
<div id="zuobiao"></div>
</body>
</html>

上述代码对offsetX属性进行了简单的演示,与此属性相对应的是offsetY属性。

下面对上述代码进行一下简单注释说明:

(1).为紫色div元素注册mousemove事件处理函数,只要鼠标移动就会触发此事件,进而执行事件处理函数。

(2).在事件处理函数中,将当前鼠标指针在div元素中的坐标写入id属性值为zuobiao的div。

(3).于是,只要鼠标在紫色div中移动,那么就会实时将鼠标指针坐标写入id属性值为zuobiao的div。

相关阅读:

(1).mousemove事件可以参阅JavaScript mousemove 事件一章节。

(2).innerHTML可以参阅JavaScript innerHTML一章节。


鲜花

握手

雷人

路过

鸡蛋

最新评论

返回顶部