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向.ashx文件post中文乱码问题的解决方法
Mar 28 Javascript
腾讯UED 漂亮的提示信息效果代码
Sep 12 Javascript
通过action传过来的值在option获取进行验证的方法
Nov 14 Javascript
Javascript writable特性介绍
Feb 27 Javascript
深入分析JSON编码格式提交表单数据
Jun 25 Javascript
jquery+CSS实现的多级竖向展开树形TRee菜单效果
Aug 24 Javascript
如何用jQuery实现ASP.NET GridView折叠伸展效果
Sep 26 Javascript
js倒计时抢购实例
Dec 20 Javascript
js实现的鼠标滚轮滚动切换页面效果(类似360默认页面滚动切换效果)
Jan 27 Javascript
jQuery javascript获得网页的高度与宽度的实现代码
Apr 26 Javascript
JS处理数据四舍五入(tofixed与round的区别详解)
Oct 26 Javascript
vue递归获取父元素的元素实例
Aug 07 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
phpmailer中文乱码问题的解决方法
2014/04/22 PHP
PHP微信开发之查询微信精选文章
2016/06/23 PHP
JavaScript初学者应注意的七个细节小结
2012/01/30 Javascript
ASP.NET jQuery 实例15 通过控件CustomValidator验证CheckBoxList
2012/02/03 Javascript
alert中断settimeout计时功能
2013/07/26 Javascript
js 获取浏览器版本以此来调整CSS的样式
2014/06/03 Javascript
wap手机图片滑动切换特效无css3元素js脚本编写
2014/07/28 Javascript
Javascript this 关键字 详解
2014/10/22 Javascript
实现placeholder效果的方案汇总
2015/06/11 Javascript
11种ASP连接数据库的方法
2015/09/18 Javascript
基于jQuery实现多层次的手风琴效果附源码
2015/09/21 Javascript
jquery编写Tab选项卡滚动导航切换特效
2020/07/17 Javascript
AngularJs学习第八篇 过滤器filter创建
2016/06/08 Javascript
浅谈JavaScript中变量和函数声明的提升
2016/08/09 Javascript
微信小程序之ES6与事项助手的功能实现
2016/11/30 Javascript
vue-cli如何添加less 以及sass
2017/07/06 Javascript
vue引入swiper插件的使用实例
2017/07/19 Javascript
node.js实现微信JS-API封装接口的示例代码
2017/09/06 Javascript
Vuex 入门教程
2018/01/10 Javascript
JS动画定时器知识总结
2018/03/23 Javascript
Node.js实现简单管理系统
2019/09/23 Javascript
[05:09]DOTA2-DPC中国联赛2月22日Recap集锦
2021/03/11 DOTA
python模块简介之有序字典(OrderedDict)
2016/12/01 Python
python简单线程和协程学习心得(分享)
2017/06/14 Python
Python使用文件锁实现进程间同步功能【基于fcntl模块】
2017/10/16 Python
人脸识别经典算法一 特征脸方法(Eigenface)
2018/03/13 Python
Selenium chrome配置代理Python版的方法
2018/11/29 Python
Python实现最常见加密方式详解
2019/07/13 Python
python GUI库图形界面开发之PyQt5控件QTableWidget详细使用方法与属性
2020/02/25 Python
通过实例简单了解python yield使用方法
2020/08/06 Python
什么是CSS3 HSLA色彩模式?HSLA模拟渐变色条
2016/04/26 HTML / CSS
世界著名的顶级牛排:Omaha Steak(奥马哈牛排)
2016/09/20 全球购物
请编写一个 C 函数,该函数在给定的内存区域搜索给定的字符,并返回该字符所在位置索引值
2014/09/15 面试题
了解AppleTalk协议吗
2014/04/01 面试题
病人写给医生的感谢信
2015/01/23 职场文书
Elasticsearch 配置详解
2022/04/19 Java/Android