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 相关文章推荐
传递参数的标准方法(jQuery.ajax)
Nov 19 Javascript
客户端js性能优化小技巧整理
Nov 05 Javascript
jQuery ajax serialize() 方法使用示例
Nov 02 Javascript
JS获得多个同name 的input输入框的值的实现方法
Jan 09 Javascript
微信小程序 swiper组件构建轮播图的实例
Sep 20 Javascript
微信小程序选择图片和放大预览图片功能
Nov 02 Javascript
浅谈Angular文字折叠展开组件的原理分析
Nov 24 Javascript
不得不知的ES6小技巧
Jul 28 Javascript
JS使用cookie保存用户登录信息操作示例
May 30 Javascript
vue 实现滚动到底部翻页效果(pc端)
Jul 31 Javascript
element跨分页操作选择详解
Jun 29 Javascript
Vue2.0 $set()的正确使用详解
Jul 28 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设计模式之责任链模式的深入解析
2013/06/13 PHP
使用PHP备份MySQL和网站发送到邮箱实例代码
2013/11/28 PHP
yii2中LinkPager增加总页数和总记录数的实例
2017/08/28 PHP
Laravel框架定时任务2种实现方式示例
2018/12/08 PHP
js 鼠标点击事件及其它捕获
2009/06/04 Javascript
jquery select动态加载选择(兼容各种浏览器)
2013/02/01 Javascript
JS文本框不能输入空格验证方法
2013/03/19 Javascript
js 判断上传文件大小及格式代码
2013/11/13 Javascript
javascript中alert()与console.log()的区别
2015/08/26 Javascript
基于javascript实现listbox左右移动
2016/01/29 Javascript
浅谈javascript基础之客户端事件驱动
2016/06/10 Javascript
解析浏览器端的AJAX缓存机制
2016/06/21 Javascript
JavaScript 限制文本框不可输入英文单双引号的方法
2016/12/20 Javascript
JS实现访问DOM对象指定节点的方法示例
2018/04/04 Javascript
vue router导航守卫(router.beforeEach())的使用详解
2019/04/19 Javascript
微信小程序设置滚动条过程详解
2019/07/25 Javascript
JavaScript中的this/call/apply/bind的使用及区别
2020/03/06 Javascript
微信小游戏中three.js离屏画布的示例代码
2020/10/12 Javascript
[01:58]DOTA2上海特级锦标赛现场采访:RTZ这个ID到底好不好
2016/03/25 DOTA
浅谈Python中函数的参数传递
2016/06/21 Python
python2.7 mayavi 安装图文教程(推荐)
2017/06/22 Python
python爬虫实战之最简单的网页爬虫教程
2017/08/13 Python
Python实现句子翻译功能
2017/11/14 Python
Python验证文件是否可读写代码分享
2017/12/11 Python
python使用suds调用webservice接口的方法
2019/01/03 Python
Django缓存系统实现过程解析
2019/08/02 Python
根据tensor的名字获取变量的值方式
2020/01/04 Python
使用Python第三方库pygame写个贪吃蛇小游戏
2020/03/06 Python
python函数调用,循环,列表复制实例
2020/05/03 Python
使用Pycharm在运行过程中,查看每个变量的操作(show variables)
2020/06/08 Python
django美化后台django-suit的安装配置操作
2020/07/12 Python
Django web自定义通用权限控制实现方法
2020/11/24 Python
Bibloo罗马尼亚网站:女装、男装、童装及鞋子和配饰
2019/07/20 全球购物
基石观后感
2015/06/12 职场文书
Linux安装Nginx步骤详解
2021/03/31 Servers
星际争霸:毕姥爷vs解冻01
2022/04/01 星际争霸