当前位置: 首页 > 图文教程 > 网络编程 > Javascript > Javascript在IE或Firefox下获取鼠标位置的代码

Javascript
javascript显弹效果代码增加了cookies控制
通过修改referer下载文件的方法
js简单的表拖拽
javascript Error 对象 错误处理
[原创]discuz中用到的javascript函数解析
js 加载时自动调整图片大小
JS入门代码集合
css客齐集社区头像显示效果
使用jscript实现二进制读写脚本代码
国外的为初学者写的JavaScript教程
比较详细的javascript DOM 学习笔记
符合W3C Web标准的图片连续无间隙水平滚动
Javascript入门学习第五篇 js函数
点图片上一页下一页翻页效果
js鼠标、键盘事件实例代码
JavaScript 图片切换展示效果alibaba拓展版
Javascript 小技巧全集
两表格传递变量
收集整理的四个方向的滚动
可拖动窗口,附带鼠标控制渐变透明,开启关闭功能

Javascript在IE或Firefox下获取鼠标位置的代码


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-10   浏览: 177 ::
收藏到网摘: n/a

由于Firefox和IE等浏览器之间对JS解释的方式不一样,Firefox下面获取鼠标位置不能够直接使用clientX来获取。网上说的一般都是触发mousemove事件才行。我这里有两段代码,思路都一样,就是风格不同。 第一段代码是利用全局变量来获取实时鼠标的位置。
复制代码 代码如下:

var xPos;
var yPos;
window.document.onmousemove(function(evt){
evt=evt || window.event;
if(evt.pageX){
xPos=evt.pageX;
yPos=evt.pageY;
} else {
xPos=evt.clientX+document.body.scrollLeft-document.body.clientLeft;
yPos=evt.clientY+document.body.scrollTop-document.body.clientTop;
}
});

因为IE和Firefox对clientX的解析不一样,IE认为clientX是鼠标相对整个页面左上角的位置,而Firefox认为是相对当前所见页面左上角的位置。而这段代码最终返回的结果是整个页面左上角的位置。这段代码的缺陷是,xPos和yPos是实时变动的。
第二段代码是通过函数获取当前时刻的鼠标坐标值
复制代码 代码如下:

document.onmousemove = mouseMove;
function mouseMove(ev){
ev = ev || window.event;
var mousePos = mouseCoords(ev);
}
function mouseCoords(ev){
if(ev.pageX || ev.pageY){
return {x:ev.pageX, y:ev.pageY};
}
return {
x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,
y:ev.clientY + document.body.scrollTop - document.body.clientTop
};
}

这段代码的来源是这里,这个网站还提供了一些简单的样例给我们玩耍。这个函数和刚才的函数理论是一致的,先触发mousemove事件,然后获取了事件之后,分别判断浏览器类型。这段代码的优点是,不适用全局变量,并且可以随用随拿,只要调用这个函数,就能够获取鼠标坐标。
这两段代码,个人偏好于后者,现在先把这段代码记下来,这段代码应该是会经常被使用到的。