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声明数组,对象在jsp页面中(获得ajax得到json数据)
Nov 05 Javascript
Javascript 按位取反运算符 (~)
Feb 04 Javascript
JS去除iframe滚动条的方法
Apr 01 Javascript
jquery实现图片随机排列的方法
May 04 Javascript
JQuery ztree 异步加载实例讲解
Feb 25 Javascript
jQuery soColorPacker 网页拾色器
Jun 22 Javascript
微信小程序 HTTPS报错整理常见问题及解决方案
Dec 14 Javascript
详解vue2.0脚手架的webpack 配置文件分析
May 27 Javascript
jQuery实现遍历XML节点和属性的方法示例
Apr 29 jQuery
JavaScript中变量、指针和引用功能与操作示例
Aug 04 Javascript
从零开始用electron手撸一个截屏工具的示例代码
Oct 10 Javascript
vantUI 获得piker选中值的自定义ID操作
Nov 04 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 adodb分页实现代码
2009/03/19 PHP
PHP 文件缓存的性能测试
2010/04/25 PHP
自定义session存储机制避免会话保持问题
2014/10/08 PHP
php递归法读取目录及文件的方法
2015/01/30 PHP
PHP根据图片色界在不同位置加水印的方法
2015/07/01 PHP
深入php内核之php in array
2015/11/10 PHP
thinkPHP模板算术运算相关函数用法分析
2016/07/12 PHP
thinkphp框架类库扩展操作示例
2019/11/26 PHP
判断javascript的数据类型(示例代码)
2013/12/11 Javascript
js实现遮罩层划出效果是生成div而不是显示
2014/07/29 Javascript
JavaScript数组迭代器实例分析
2015/06/09 Javascript
jQuery实现类似淘宝网图片放大效果的方法
2015/07/08 Javascript
Angular 4环境准备与Angular cli创建项目详解
2017/05/27 Javascript
JS实现评价的星星功能
2017/08/20 Javascript
在HTML文档中嵌入JavaScript的四种方法
2018/05/07 Javascript
JS实现仿微信支付弹窗功能
2018/06/25 Javascript
了解Javascript中函数作为对象的魅力
2019/06/19 Javascript
[03:59]DOTA2英雄梦之声_第07期_水晶室女
2014/06/23 DOTA
Python中的groupby分组功能的实例代码
2018/07/11 Python
python hbase读取数据发送kafka的方法
2018/12/27 Python
python中删除某个元素的方法解析
2019/11/05 Python
用python写PDF转换器的实现
2020/10/29 Python
浅谈Html5中视频 音频标签 进度条的问题
2016/07/26 HTML / CSS
德国EGOIST网店:销售畅销的设计师品牌
2017/04/18 全球购物
医学护理系毕业生求职信
2013/10/01 职场文书
财务会计自荐信范文
2014/02/21 职场文书
生日礼品店创业计划书范文
2014/03/21 职场文书
工程承包协议书
2014/04/22 职场文书
公司停电通知
2015/04/15 职场文书
2015年纪念“卢沟桥事变”78周年活动方案
2015/05/06 职场文书
论文答辩开场白大全
2015/05/27 职场文书
2015年小学生暑假总结
2015/07/13 职场文书
升学宴学生致辞
2015/07/27 职场文书
毕业晚宴祝酒词
2015/08/11 职场文书
财务人员入职担保书
2015/09/22 职场文书
vue实现书本翻页动画效果实例详解
2022/04/08 Vue.js