用javascript获取当页面上鼠标光标位置和触发事件的对象的代码

 更新时间:2009年12月09日 20:56:20   作者:  
用 javascript 获取当页面上鼠标(光标)位置 和 触发事件的对象 的方法
用javascript获取鼠标位置:
复制代码 代码如下:

function mousePosition(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
};
}

document.onmousemove = mouseMove;
function mouseMove(ev){
ev = ev || window.event;
var mousePos = mousePosition(ev);
}

关于代码的详细说明,原文中已经介绍,现转到此处:
我们首先要声明一个 evnet 对象,无论移动、点击、按键等,都会激活一个 evnet ,在 Internet Explorer 里, event 是全局变量,会被存储在 window.event 里. 在 firefox 或者其他浏览器,event 会被相应的函数获取.当我们将mouseMove函数赋值于document.onmousemove,mouseMove 会获取鼠标移动事件。
为了让 ev 在所有浏览器下获取了 event 事件,在Firefox下"||window.event"将不起作用,因为ev已经有了赋值。在 MSIE 中 ev 为空,所以得到 window.event 。
因为在这篇文章中我们需要多次获取鼠标位置,所以我们设计了一个 mousePosition 函数,它包含一个参数 : event 。
因为我们要在 MSIE 和其他浏览器下运行,Firefox 和其他浏览器用 event.pageX 和 event.pageY 来表示鼠标相对于文档的位置,如果你有一个 500*500 的窗口并且你的鼠标在绝对中间,那么 pageX 和 pageY 的值都是 250,如果你向下滚动 500, 那么 pageY 将变成 750。
MSIE 正好相反,它使用 event.clientX 和 event.clientY 表示鼠标相当于窗口的位置,而不是文档。在同样的例子中,如果你向下滚动500,clientY 依然是 250,因此,我们需要添加 scrollLeft 和 scrollTop 这两个相对于文档的属性。最后,MSIE 中文档并不是从 0,0 开始,而是通常有一个小的边框(通常是 2 象素),边框的大小定义在 document.body.clientLeft 和 clientTop 中,我们也把这些加进去。
很幸运,我们现在已经用 mousePosition 函数解决了坐标问题,不需为此费心了。

用javascript获取触发事件的对象
复制代码 代码如下:

<script language = "javascript" >
document.onclick = onClick;
function onClick(ev)
{
ev = ev || window.event; // 事件
var target = ev.target || ev.srcElement; // 获得事件源
/* target.getAttribute()是获取该事件源对像里面的一些属性。
比如对像中有(name,id,type等等);*/
var dragObj = target.getAttribute('id');
alert(dragObj);
}
</ script >

关键还是event对象在多浏览器下的兼容性,和上面方式是一样的,这里代码就不做说明了

相关文章

  • js对象之JS入门之Array对象操作小结

    js对象之JS入门之Array对象操作小结

    每天一对象,今天我们也来new一个。没有系统的学过JS,没有特别的写过一个比较出色的类库,没有运用过一个很强的类库,prototype.js在进行着,慢慢的前进相信不久的将来就可以应用prototype.js来开发自己的应用程序了。
    2011-01-01
  • bootstrap fileinput组件整合Springmvc上传图片到本地磁盘

    bootstrap fileinput组件整合Springmvc上传图片到本地磁盘

    这篇文章主要介绍了bootstrap fileinput组件整合Springmvc上传图片到本地磁盘的方法,需要的朋友可以参考下
    2017-05-05
  • JS模仿编辑器实时改变文本框宽度和高度大小的方法

    JS模仿编辑器实时改变文本框宽度和高度大小的方法

    这篇文章主要介绍了JS模仿编辑器实时改变文本框宽度和高度大小的方法,涉及javascript鼠标事件及页面元素样式的动态操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-08-08
  • JS 类型转换常见方法小结

    JS 类型转换常见方法小结

    JS 类型转换常见方法小结,需要的朋友可以参考下。
    2010-05-05
  • bootstrap导航条实现代码

    bootstrap导航条实现代码

    这篇文章主要为大家详细介绍了bootstrap导航条的实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • js使用visibilitychange处理页面关闭事件

    js使用visibilitychange处理页面关闭事件

    本文主要介绍了js使用visibilitychange处理页面关闭事件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • JS访问对象两种方式区别解析

    JS访问对象两种方式区别解析

    这篇文章主要介绍了JS访问对象两种方式区别解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • JS实现六边形3D拖拽翻转效果的方法

    JS实现六边形3D拖拽翻转效果的方法

    这篇文章给大家分享一个利用javascript实现3D六边形拖拽翻转的效果实例,实现后的效果很赞,对大家的学习Javascript具有一定的参考借鉴价值,有需要的朋友们一起去来看看吧。
    2016-09-09
  • JavaScript中Function详解

    JavaScript中Function详解

    函数是由关键字function、函数名加一组参数及置于大括号中需要执行的一段语义定义的。今天我们就来详细讲解一下JavaScript中的Function。
    2015-02-02
  • 浅谈Webpack4 Tree Shaking 终极优化指南

    浅谈Webpack4 Tree Shaking 终极优化指南

    这篇文章主要介绍了浅谈Webpack4 Tree Shaking 终极优化指南,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11

最新评论