html5 js获取鼠标坐标,JavaScript取得鼠标绝对位置程序代码介绍

首先不同浏览器中event位置属性的分析:

1. IE的event.x,event.y是以事件触发元素的父元素外界为参考点(不包括滚动距离)

2. Firefox的event.pageX,event.pageY是以body元素为参考点(包括滚动距离)

3. event.clientX,event.clientY以浏览器左上角为参考点(不包括滚动距离)

4. IE的event.offsetX,event.offsetY和Firefox的event.layerX,event.layerY以事件触发元素内界的左上角为参考点(包括滚动距离,当有边框时,可能出现负数)

然后是DOM对象高度属性分析

1. scrollHeight: 获取对象的滚动高度

2. scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离

3. scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离

4. scrollWidth:获取对象的滚动宽度

5. offsetHeight:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度

6. offsetLeft:获取对象相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置

7. offsetTop:获取对象相对于版面或由 offsetTop 属性指定的父坐标的计算顶端位置

有了以上分析,写出两个取位置的函数

复制代码 代码如下:

// 取X轴位置

function mouseX(evt) {

// firefox

if (evt.pageX) return evt.pageX;

// IE

else if (evt.clientX)

return evt.clientX + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft);

else return null;

}

// 取Y轴位置

function mouseY(evt) {

// firefox

if (evt.pageY) return evt.pageY;

// IE

else if (evt.clientY)

return evt.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);

else return null;

}

获取Html控件的绝对位置的两种方法

复制代码 代码如下:

function getAbsPoint(e){

var x = e.offsetLeft, y = e.offsetTop;

while (e = e.offsetParent) {

x += e.offsetLeft;

y += e.offsetTop;

}

alert("x:" + x + "," + "y:" + y);

}

function getAbsPoint(obj){

var x, y;

oRect = obj.getBoundingClientRect();

x = oRect.left

y = oRect.top

alert("(" + x + "," + y + ")")

}

注意

document.body.scrollLeft,document.body.scrollTop只用于IE6以前的版本,在IE6中,对没有宣告 DOCTYPE,或者宣告的是transitional DOCTYPE,那么IE6将使用document.documentElement.scrollLeft 来获取鼠标的绝对位置

http://www.dengb.com/Javascript/332351.htmlwww.dengb.comtruehttp://www.dengb.com/Javascript/332351.htmlTechArticle首先不同浏览器中event位置属性的分析: 1. IE的event.x,event.y是以事件触发元素的父元素外界为参考点(不包括滚动距离) 2. Firefox的event.pageX,ev...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值