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 相关文章推荐
JS网页播放声音实现代码兼容各种浏览器
Sep 22 Javascript
JavaScript操作Oracle数据库示例
Mar 06 Javascript
js实现点击切换TAB标签实例
Aug 21 Javascript
JavaScript截取指定长度字符串点击可以展开全部代码
Dec 04 Javascript
jQuery+css实现非常漂亮的水平导航菜单效果
Jul 27 Javascript
深入理解AngularJS中的ng-bind-html指令
Mar 27 Javascript
基于jQuery选择器之表单对象属性筛选选择器的实例
Sep 19 jQuery
AngularJS 前台分页实现的示例代码
Jun 07 Javascript
js实现购物车功能
Jun 12 Javascript
node将geojson转shp返回给前端的实现方法
May 29 Javascript
JavaScript枚举选择jquery插件代码实例
Nov 17 jQuery
vue 计算属性和侦听器的使用小结
Jan 25 Vue.js
属于你的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
ajax实现无刷新分页(php)
2010/07/18 PHP
PHP中对缓冲区的控制实现代码
2013/09/29 PHP
php处理多图上传压缩代码功能
2018/06/13 PHP
用Jquery重写windows.alert方法实现思路
2013/04/03 Javascript
jquery弹出框的用法示例(一)
2013/08/26 Javascript
Bootstrap的图片轮播示例代码
2015/08/31 Javascript
详解PHP中pathinfo()函数导致的安全问题
2017/01/05 Javascript
Angular使用动态加载组件方法实现Dialog的示例
2018/05/11 Javascript
通过vue写一个瀑布流插件代码实例
2019/09/07 Javascript
js获取本日、本周、本月的时间代码
2020/02/01 Javascript
vue搜索页开发实例代码详解(热门搜索,历史搜索,淘宝接口演示)
2020/04/11 Javascript
Vue 构造选项 - 进阶使用说明
2020/08/14 Javascript
解决vuex刷新数据消失问题
2020/11/12 Javascript
Python程序员开发中常犯的10个错误
2014/07/07 Python
解决Python中由于logging模块误用导致的内存泄露
2015/04/23 Python
Python的collections模块中namedtuple结构使用示例
2016/07/07 Python
简单易懂的python环境安装教程
2017/07/13 Python
django初始化数据库的实例
2018/05/27 Python
Django安装配置mysql的方法步骤
2018/10/15 Python
python 通过麦克风录音 生成wav文件的方法
2019/01/09 Python
Django Aggregation聚合使用方法解析
2019/08/01 Python
python读写csv文件的方法
2019/08/13 Python
Python 实现将大图切片成小图,将小图组合成大图的例子
2020/03/14 Python
jupyter notebook 添加kernel permission denied的操作
2020/04/21 Python
Python3爬虫中识别图形验证码的实例讲解
2020/07/30 Python
python RSA加密的示例
2020/12/09 Python
在html页面中取得session中的值的方法
2020/08/11 HTML / CSS
AmazeUI 点击元素显示全屏的实现
2020/08/25 HTML / CSS
Abe’s of Maine:自1979以来销售相机和电子产品
2016/11/21 全球购物
伦敦所有西区剧院演出官方票务代理:Theatre Tickets Direct
2017/05/26 全球购物
新西兰领先的内衣店:Bendon Lingerie新西兰
2018/07/11 全球购物
团结就是力量演讲稿
2014/05/21 职场文书
政风行风建设责任书
2014/07/23 职场文书
新党章心得体会
2014/09/04 职场文书
反对形式主义、官僚主义、享乐主义和奢靡之风整改措施
2014/09/17 职场文书
PostgreSQL逻辑复制解密原理解析
2022/09/23 PostgreSQL