JS获取鼠标坐标位置实例分析


Posted in Javascript onJanuary 20, 2016

本文实例分析了JS获取鼠标坐标位置的方法。分享给大家供大家参考,具体如下:

取鼠标坐标位置有这些:鼠标在视口的坐标位置(clientX,clientY),鼠标在页面的坐标位置(pageX,pageY),鼠标在屏幕的坐标位置(screenX,screenY),其中鼠标在视口的坐标位置(clientX,clientY),以及鼠标在屏幕的坐标位置(screenX,screenY)在所有的浏览器中都支持,但是鼠标在页面的坐标位置(pageX,pageY)在IE8及更早版本不支持,但是没有关系,可以通过scrollLeft 和 scrollTop可以计算出pageX,pageY的值。

首先是跨浏览器的事件对象

var EventUtil = {
  addHandler:function(elem,type,handler){
    if(elem.addEventListener)
    {
      elem.addEventListener(type,handler,false);
    }else if(elem.attachEvent)
    {
      elem.attachEvent("on"+type,handler);
    }else
    {
      elem["on"+type]=handler;
    }
  },
  removeHandler:function(elem,type,handler){
    if(elem.removeEventListener)
    {
      elem.removeEventListener(type,handler,false);
    }else if(elem.detachEvent)
    {
      elem.detachEvent("on"+type,handler);
    }else
    {
      elem["on"+type]=null;
    }
  },
  getEvent:function(event){
    return event?event:window.event;
  },
  getTarget:function(event){
    return event.target||event.srcElement;
  },
  preventDefault:function(event){
    if(event,preventDefault){
      event.preventDefault();
    }else{
      event.returnValue = false;
    }
  },
  stopPropagation:function(event){
    if(event.stopPropagation){
      event.stopPropagation();
    }else{
      event.cancelBubble=true;
    }
  }
};

1.视口坐标位置

var div = document.getElementById("myDiv");
EventUtil.addHandler(div,"click",function(event){
   event = EventUtil.getEvent(event);
   alert("Client coordinages: "+event.clientX+","+event.clientY);
});

2.屏幕坐标位置

var div = document.getElementById("myDiv");
EventUtil.addHandler(div,"click",function(event){
   event = EventUtil.getEvent(event);
   alert("Screen coordinates: "+event.screenX+","+event.screenY);
});

3.页面坐标位置

var div = document.getElementById("myDiv");
EventUtil(div,"click",function(event){
   event = EventUtil.getEvent(event);
   var pageX = event.pageX;
   var pageY = event.pageY;
   if(pageX==undefined)
  {
     pageX=event.clientX+document.body.scrollLeft||document.documentElement.scrollLeft;
  }
   if(pageY==undefined)
   {
     pageY = event.clientY+document.body.scrollTop||document.documentElement.scrollTop;
   }
   alert("Page coordinates: "+pageX+","+pageY);
});

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
JavaScript 自动分号插入(JavaScript synat:auto semicolon insertion)
Nov 04 Javascript
兼容ie、firefox的图片自动缩放的css跟js代码分享
Aug 12 Javascript
jquery的ajax跨域请求原理和示例
May 08 Javascript
JavaScript作用域链示例分享
May 27 Javascript
浅谈javascript中自定义模版
Jan 29 Javascript
JQuery中$.each 和$(selector).each()的区别详解
Mar 13 Javascript
Javascript实现的简单右键菜单类
Sep 23 Javascript
JS中判断字符串中出现次数最多的字符及出现的次数的简单实例
Jun 03 Javascript
jQuery过滤选择器用法示例
Sep 12 Javascript
在 Typescript 中使用可被复用的 Vue Mixin功能
Apr 17 Javascript
element上传组件循环引用及简单时间倒计时的实现
Oct 01 Javascript
layui监听select变化,以及设置radio选中的方法
Sep 24 Javascript
属于你的jQuery提示框(Tip)插件
Jan 20 #Javascript
学习JavaScript设计模式之模板方法模式
Jan 20 #Javascript
高性能JavaScript循环语句和条件语句
Jan 20 #Javascript
详解Javascript模板引擎mustache.js
Jan 20 #Javascript
JavaScript优化专题之Loading and Execution加载和运行
Jan 20 #Javascript
JQuery日历插件My97DatePicker日期范围限制
Jan 20 #Javascript
在其他地方你学不到的jQuery小贴士和技巧(欢迎收藏)
Jan 20 #Javascript
You might like
用Php实现链结人气统计
2006/10/09 PHP
目录,文件操作详谈―PHP
2006/11/25 PHP
PHP通过反射动态加载第三方类和获得类源码的实例
2015/11/27 PHP
PHP addAttribute()函数讲解
2019/02/03 PHP
PHP函数积累总结
2019/03/19 PHP
php7 新增功能实例总结
2020/05/25 PHP
在textarea文本域中显示HTML代码的方法
2007/03/06 Javascript
动态修改DOM 里面的 id 属性的弊端分析
2008/09/03 Javascript
jquery 1.3.2 IE8中的一点点的小问题解决方法
2009/07/10 Javascript
javascript实现的一个带下拉框功能的文本框
2014/05/08 Javascript
浅析BootStrap模态框的使用(经典)
2016/04/29 Javascript
如何写好你的JavaScript【推荐】
2017/03/02 Javascript
Form表单上传文件(type="file")的使用
2017/08/03 Javascript
vue2中的keep-alive使用总结及注意事项
2017/12/21 Javascript
webpack4.x开发环境配置详解
2018/08/04 Javascript
react+ant design实现Table的增、删、改的示例代码
2018/12/27 Javascript
jQuery实现全选、反选和不选功能的方法详解
2019/12/04 jQuery
[01:01:51]EG vs VG Supermajor小组赛B组 BO3 第二场 6.2
2018/06/03 DOTA
在Python的Flask框架中验证注册用户的Email的方法
2015/09/02 Python
python记录程序运行时间的三种方法
2017/07/14 Python
Python快速查找list中相同部分的方法
2018/06/27 Python
python实现弹窗祝福效果
2019/04/07 Python
CSS3 filter(滤镜)实现网页灰色或者黑色模式的代码
2020/11/30 HTML / CSS
深入研究HTML5实现图片压缩上传功能
2016/03/25 HTML / CSS
HTML5 history新特性pushState、replaceState及两者的区别
2015/12/26 HTML / CSS
世界排名第一的万圣节服装店:Spirit Halloween
2018/10/16 全球购物
大专生的学习自我评价
2013/12/04 职场文书
经营管理策划方案
2014/05/22 职场文书
求职自我推荐信
2014/06/25 职场文书
会计学习心得体会
2014/09/09 职场文书
2014年祖国生日寄语
2014/09/19 职场文书
国庆节促销广告语2014
2014/09/19 职场文书
使用python+pygame开发消消乐游戏附完整源码
2021/06/10 Python
Python中文纠错的简单实现
2021/07/07 Python
TV动画《八十龟酱观察日记》第四季宣传PV公布
2022/04/06 日漫
Vue.Draggable实现交换位置
2022/04/07 Vue.js