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 .attr()和.removeAttr()方法操作元素属性示例
Jul 16 Javascript
AngularJS 避繁就简的路由
Jul 01 Javascript
浅析Javascript ES6中的原生Promise
Aug 25 Javascript
微信开发 微信授权详解
Oct 21 Javascript
jQuery 的 ready()的纯js替代方法
Nov 20 Javascript
JavaScript轻松创建级联函数的方法示例
Feb 10 Javascript
详谈js中window.location.search的用法和作用
Feb 13 Javascript
微信小程序页面间通信的5种方式
Mar 31 Javascript
es6学习笔记之Async函数的使用示例
May 11 Javascript
几种响应式文字详解
May 19 Javascript
vue 需求 data中的数据之间的调用操作
Aug 05 Javascript
解决ant Design中this.props.form.validateFields未执行的问题
Oct 27 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 正则学习实例
2008/07/30 PHP
PHP中的cookie不用刷新就生效的方法
2012/02/04 PHP
php工具型代码之印章抠图
2018/07/18 PHP
javascript 关闭IE6、IE7
2009/06/01 Javascript
javascript window.opener的用法分析
2010/04/07 Javascript
jquery 使用点滴函数代码
2011/05/20 Javascript
js实现简单登录功能的实例代码
2013/11/09 Javascript
类似天猫商品详情随浏览器移动的示例代码
2014/02/27 Javascript
jquery判断小数点两位和自动删除小数两位后的数字
2014/03/19 Javascript
jQuery的缓存机制浅析
2014/06/07 Javascript
JavaScript中的全局对象介绍
2015/01/01 Javascript
JavaScript在浏览器标题栏上显示当前日期和时间的方法
2015/03/19 Javascript
将List对象列表转换成JSON格式的类实现方法
2016/07/04 Javascript
JS中正则表达式只有3种匹配模式(没有单行模式)详解
2016/07/28 Javascript
javascript如何创建对象
2016/08/29 Javascript
创建一般js对象的几种方式
2017/01/19 Javascript
js评分组件使用详解
2017/06/06 Javascript
原生js jquery ajax请求以及jsonp的调用方法
2017/08/04 jQuery
jQuery实现动态加载select下拉列表项功能示例
2018/05/31 jQuery
vue.js多页面开发环境搭建过程
2019/04/24 Javascript
12个提高JavaScript技能的概念(小结)
2019/05/09 Javascript
安装dbus-python的简要教程
2015/05/05 Python
Python写的一个定时重跑获取数据库数据
2016/12/28 Python
python中 chr unichr ord函数的实例详解
2017/08/06 Python
python实现textrank关键词提取
2018/06/22 Python
Django实现支付宝付款和微信支付的示例代码
2018/07/25 Python
浅析CSS3 用text-overflow解决文字排版问题
2020/10/28 HTML / CSS
HTML5+CSS3实现无插件拖拽上传图片(支持预览与批量)
2017/01/05 HTML / CSS
举例详解HTML5中使用JSON格式提交表单
2015/06/16 HTML / CSS
国际象棋商店:The Chess Store
2018/07/09 全球购物
人力资源部副职的竞聘演讲稿
2014/01/07 职场文书
学生手册家长评语
2014/02/10 职场文书
2017年寒假少先队活动总结
2016/04/06 职场文书
一篇文章学会Vue中间件管道
2021/06/20 Vue.js
python的变量和简单数字类型详解
2021/09/15 Python
Spring中的@Transactional的工作原理
2022/06/05 Java/Android