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 相关文章推荐
PNGHandler-借助JS让PNG图在IE下实现透明(包括背景图)
Aug 31 Javascript
jQuery jqgrid 对含特殊字符json 数据的 Java 处理方法
Jan 01 Javascript
js获取RadioButtonList的Value/Text及选中值等信息实现代码
Mar 05 Javascript
jQuery Ajax 全局调用封装实例代码详解
Jun 02 Javascript
JSON字符串转换JSONObject和JSONArray的方法
Jun 03 Javascript
jQuery获取选中单选按钮radio的值
Dec 27 Javascript
js常用DOM方法详解
Feb 04 Javascript
利用require.js与angular搭建spa应用的方法实例
Jul 19 Javascript
原生JS实现的放大镜特效示例【测试可用】
Dec 08 Javascript
Vue插件之滑动验证码
Sep 21 Javascript
如何实现echarts markline标签名显示自己想要的
Jul 20 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实现在线阅读PDF文件的方法
2015/06/23 PHP
PHP的Yii框架的基本使用示例
2015/08/21 PHP
centos+php+coreseek+sphinx+mysql之一coreseek安装篇
2016/10/25 PHP
JS判断是否为数字,是否为整数,是否为浮点数的代码
2010/04/24 Javascript
JavaScript起点(严格模式深度了解)
2013/01/28 Javascript
js 为label标签和div标签赋值的方法
2013/08/08 Javascript
JavaScript获取网页、浏览器、屏幕高度和宽度汇总
2014/12/18 Javascript
JavaScript中自定义事件用法分析
2014/12/23 Javascript
关于微信中a链接无法跳转问题
2016/08/02 Javascript
JavaScript实现多栏目切换效果
2016/12/12 Javascript
使用jquery判断一个元素是否含有一个指定的类(class)实例
2017/02/12 Javascript
self.attachevent is not a function的解决方法
2017/04/04 Javascript
vue+axios新手实践实现登陆的示例代码
2018/06/06 Javascript
vue指令只能输入正数并且只能输入一个小数点的方法
2018/06/08 Javascript
vue项目启动出现cannot GET /服务错误的解决方法
2020/04/26 Javascript
如何通过Proxy实现JSBridge模块化封装
2020/10/22 Javascript
JavaScript实现网页下拉菜单效果
2020/11/20 Javascript
python获取文件路径、文件名、后缀名的实例
2018/04/23 Python
详解Python下ftp上传文件linux服务器
2018/06/21 Python
pandas 根据列的值选取所有行的示例
2018/11/07 Python
利用Pandas和Numpy按时间戳将数据以Groupby方式分组
2019/07/22 Python
Django 解决开发自定义抛出异常的问题
2020/05/21 Python
Python环境管理virtualenv&virtualenvwrapper的配置详解
2020/07/01 Python
使用canvas压缩图片大小的方法示例
2019/08/02 HTML / CSS
AmazeUI 输入框组的示例代码
2020/08/14 HTML / CSS
求∏的近似值,直到最后一项的绝对值小于指定的数
2016/02/12 面试题
秋季运动会活动方案
2014/02/05 职场文书
《鲁班和橹板》教学反思
2014/04/27 职场文书
环保公益策划方案
2014/08/15 职场文书
教师党的群众路线学习心得体会
2014/11/04 职场文书
我的兄弟姐妹观后感
2015/06/15 职场文书
开学第一周总结
2015/07/16 职场文书
病假条格式范文
2015/08/17 职场文书
银行客户经理培训心得体会
2016/01/09 职场文书
新学期小学班主任工作计划
2019/06/21 职场文书
SQL基础的查询语句
2021/11/11 MySQL