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 相关文章推荐
Ctrl+Enter提交内容信息
Jun 26 Javascript
使用JS操作页面表格,元素的一些技巧
Feb 02 Javascript
JavaScript基本概念初级讲解论坛贴的学习记录
Feb 22 Javascript
jquery入门—访问DOM对象方法
Jan 07 Javascript
iframe子父页面调用js函数示例
Nov 07 Javascript
JS实现跟随鼠标立体翻转图片的方法
May 04 Javascript
深入浅析同源策略和跨域访问
Nov 26 Javascript
vue路由跳转时判断用户是否登录功能的实现
Oct 26 Javascript
React/Redux应用使用Async/Await的方法
Nov 16 Javascript
对vue.js中this.$emit的深入理解
Feb 23 Javascript
用 js 写一个 js 解释器过程详解
Aug 02 Javascript
Element InputNumber计数器的使用方法
Jul 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的memcached客户端memcached
2011/06/14 PHP
ThinkPHP中调用PHPExcel的实现代码
2017/04/08 PHP
详解Yii2 之 生成 URL 的方法
2017/06/16 PHP
PHP实现动态压缩js与css文件的方法
2018/05/02 PHP
JS模拟的QQ面板上的多级可展开的菜单
2009/10/10 Javascript
关于二级域名下使用一级域名下的COOKIE的问题
2011/11/07 Javascript
jQuery LigerUI 使用教程表格篇(1)
2012/01/18 Javascript
使图片旋转的3种解决方案
2013/11/21 Javascript
JavaScript作用域与作用域链深入解析
2013/12/06 Javascript
node.js中的fs.lchmod方法使用说明
2014/12/16 Javascript
使用js画图之圆、弧、扇形
2015/01/12 Javascript
轻松学习jQuery插件EasyUI EasyUI实现拖动基本操作
2015/11/30 Javascript
理解javascript对象继承
2016/04/17 Javascript
Bootstrap选项卡与Masonry插件的完美结合
2016/07/06 Javascript
two.js之实现动画效果示例
2017/11/06 Javascript
对mac下nodejs 更新到最新版本的最新方法(推荐)
2018/05/17 NodeJs
详解Vue中CSS样式穿透问题
2019/09/12 Javascript
vue cli3 调用百度翻译API翻译页面的实现示例
2019/09/13 Javascript
异步任务队列Celery在Django中的使用方法
2018/06/07 Python
pandas带有重复索引操作方法
2018/06/08 Python
python实现百度OCR图片识别过程解析
2020/01/17 Python
python3连接mysql获取ansible动态inventory脚本
2020/01/19 Python
有关Tensorflow梯度下降常用的优化方法分享
2020/02/04 Python
解决python中0x80072ee2错误的方法
2020/07/19 Python
网页布局中CSS样式无效的十个重要原因详解
2017/08/10 HTML / CSS
西班牙英格列斯百货法国官网:El Corte Inglés法国
2017/07/09 全球购物
Sisley法国希思黎美国官方网站:享誉全球的奢华植物美容品牌
2020/06/27 全球购物
是否有自动比较结构的方法
2015/06/03 面试题
什么是GWT的Entry Point
2013/08/16 面试题
政治学求职信
2014/06/03 职场文书
高三励志标语
2014/06/05 职场文书
社区文艺活动方案
2014/08/19 职场文书
年终晚会活动方案
2014/08/21 职场文书
五好家庭事迹材料
2014/12/20 职场文书
python析构函数用法及注意事项
2021/06/22 Python
angular4实现带搜索的下拉框
2022/03/25 Javascript