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); }
方法2:
function getAbsPoint(obj) { var x,y; oRect = obj.getBoundingClientRect(); x=oRect.left y=oRect.top alert("("+x+","+y+")") }
JS中获得窗口属性的方法 1。获得屏幕的分辨率: screen.width screen.height 2。获得窗口大小: document.body.clientWidth document.body.clientHeight 3。获得窗口大小(包含Border、Scroll等元素) document.body.offsetWidth document.body.offsetHeight
|
由风干的果子制作,非常详细
Js如何取鼠标的当前位置/坐标(ie,ff)
一般在Javascript中,我们用event.clientX来取当前鼠标在文档中的坐标,用event.ScreenX来去当前鼠标在屏幕中的坐标。但是,在Mozilla系列浏览器中,直接使用event是不行的,会提示说event没有定义,因此在Mozilla或Firefox中调用时,需要变通一下。
在调用函数的时候,始终传一个event参数进去,在Mozilla中,会将Event对象传进去,而在IE下默认就有Event对象,也不冲突,这个问题就解决了。
以下这个例子就能够在IE和Mozilla中都正常运行。
当前鼠标坐标为:
X:
Y:
源代码:
<pre onmousemove=”DisplayMp(event)” class=”code”>
当前鼠标坐标为:
X:<span id=”mp_x”></span>
Y:<span id=”mp_y”></span>
</pre>
<script type=”text/javascript”>
<!–//–><![CDATA[//>
<!--
/**
* 显示/隐藏指定的对象(style.display方式)
* @param object event 事件,用于捕捉鼠标位置等,可省略
*/
function DisplayMp(event)
{
document.getElementById('mp_x').innerHTML = event.clientX + 'px';
document.getElementById('mp_y').innerHTML = event.clientY + 'px';
} // end of function DisplayMp
//--><!]]>
</script>
另外取到鼠标的坐标,赋值给style.top等属性的时候,后面需要加上单位,不然也会提示错误。下面就是一个正确的例子:
obj.style.top = event.clientX + 10 + ‘px’;
See Also:
Update @ 2007-03-29
如果在js中使用html_obj.onclick = function () { some_action uses Event }
这类语法时,如果遇到Event
,注意Event
最好大写,不然不会生效。
Update @ 2008-05-18
似乎找到最终的优秀解决方法了,首先用一句话解决event对象的兼容性:
if (!e) var e = window.event;
同时在调用函数的时候,如果没有显式传递Event,它会自动赋值。同时还找到取鼠标位置更兼容的方法:
if (e.pageX || e.pageY) {
posx = e.pageX;
posy = e.pageY;
}
else if (e.clientX || e.clientY) {
posx = e.clientX + document.body.scrollLeft
+ document.documentElement.scrollLeft;
posy = e.clienty + document.body.scrollTop
+ document.documentElement.scrollTop;
}
结合起来,用jQuery调用的例子:
$("#showhide_svninfo").mouseover(function(e) {
SwitchDisplay('#svninfo', 'block', e);
});
这样综合下来,兼容性就非常好了。不过本文中的例子我没有再按照这个改,好像在IE下又不灵光了。
分享到:
相关推荐
### IE和FF兼容问题详解 #### 一、引言 随着互联网技术的不断发展与普及,网页设计者们面临着越来越复杂的浏览器兼容性挑战。在众多浏览器中,Internet Explorer(简称IE)与Firefox因其庞大的用户基数而成为了...
### IE与Firefox的兼容技巧详解 #### 一、概述 在网页开发过程中,浏览器兼容性问题一直是前端开发者面临的重要挑战之一。不同的浏览器由于其内核的不同,在解析HTML、CSS及JavaScript时存在差异,这就导致了相同...
offsetParent 属性指定的父坐标的高度 offsetLeft:获取对象相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置 offsetTop:获取对象相对于版面或由 offsetTop 属性指定的父坐标的计算顶端位置 event....
例如,IE6.0和FF1.06+将`clientWidth`和`clientHeight`定义为元素的宽度和高度加上内填充,而IE5.0/5.5则减去边框。因此,当编写跨浏览器的代码时,需要注意这些兼容性问题。 此外,`scrollTop`属性与`scrollLeft`...
### IE与火狐浏览器兼容性问题详解 #### 一、概述 随着Web技术的不断发展,浏览器作为用户访问互联网的重要工具之一,在不同的版本间存在着一定的差异性。这些差异性导致了在开发网页应用时,需要特别关注不同...
4. 精确定位元素:属性`scrollLeft`、`scrollTop`、`scrollWidth`、`clientWidth`、`offsetWidth`、`offsetHeight`、`offsetLeft`和`offsetTop`可以用来精确控制和获取页面元素的位置及尺寸。 5. 鼠标事件中的坐标...
该方法提供了一种获取DOM元素相对于视口的位置的方式,包括其左上角坐标和尺寸大小。 **代码实现:** ```javascript var oRect = obj.getBoundingClientRect(); console.log(oRect.left); // 控件左侧距离视口左侧...
在JavaScript中,`offset`方法通常用于获取一个元素在页面上的绝对位置,包括距离文档顶部的距离(`top`)和距离文档左侧的距离(`left`)。这个方法在开发过程中非常实用,尤其在需要进行定位或者事件处理时。本文...
根据给定的信息,本文将详细解析如何使用JavaScript在IE7及Firefox等浏览器上实现一个三维正方体,并探讨其中涉及的关键技术点。 ### 一、背景介绍 在Web开发早期阶段,尤其是IE7时代,浏览器对HTML5 Canvas、...
### JavaScript 55个经典技巧知识点详解 #### 1. 阻止右键菜单的显示 通过在页面元素上设置 `oncontextmenu` 事件处理程序,可以阻止默认的上下文菜单出现: ```html ;"> ``` 或针对特定元素: ```html ;"> 禁止...
### JavaScript之DIV拖动类详解 #### 一、概述 本文档主要介绍了一种JavaScript实现的DIV拖动类,该类特别强调了在Firefox(FF)浏览器下的兼容性与简单的调用方式。拖动功能是网页交互设计中的一个重要组成部分,...
### JavaScript个人学习总结:多个小方面应用详解 #### 一、禁用上下文菜单与文本选取 1. **禁用右键菜单**: - 使用`oncontextmenu`事件可以阻止浏览器默认的上下文(右键)菜单弹出。 - 示例代码: ```html ...
### JavaScript 常用操作技巧详解 在前端开发领域,JavaScript 是一门不可或缺的语言,它能够帮助开发者实现多种功能,从而提升用户体验。本文将基于提供的文件信息,深入解析一系列JavaScript常用操作技巧及其应用...
### JavaScript中最常用的55个经典技巧详解 #### 技巧5:自定义浏览器图标 - **功能描述**:通过设置`<link>`标签中的`Shortcut Icon`和`Bookmark`属性,可以让网站在浏览器地址栏以及用户的收藏夹中显示自定义图标...
**知识点:** 使用JavaScript或VBScript来获取DOM元素在页面中的确切坐标位置。 ```html <!-- JavaScript 示例 --> <script language="Javascript"> function getIE(e) { var t = e.offsetTop; var l = e....
### execCommand 命令详解 #### 概述 `execCommand` 是一个在早期浏览器中广泛使用的非标准 JavaScript 方法,主要用于实现富文本编辑器的功能。通过调用 `document.execCommand`,开发者能够轻松地执行一系列与...