鼠标相对于屏幕的位置、鼠标相对于窗口的位置和获取鼠标相对于文档的位置...

一、screenX | screenY用于获取鼠标相对屏幕的位置
在IE9+和其他主流浏览器,获取鼠标相对屏幕的位置,代码如下:
function (ev){
   ev.screenX //获取鼠标相对于屏幕左边的距离
   ev.screenY //获取鼠标相对于屏幕顶部的距离
}
在IE浏览器下,获取鼠标相对屏幕的位置,代码如下:
function(){
   window.event.screenX //获取鼠标相对于屏幕左边的距离
   window.event.screenY //获取鼠标相对于屏幕顶部的距离
}
兼容所有浏览器情况下,获取鼠标相对屏幕的位置,代码如下:
function (ev){
   var ev = ev || window.event;
   ev.screenX //获取鼠标相对于屏幕左边的距离
   ev.screenY //获取鼠标相对于屏幕顶部的距离
}


二、clientX | clientY 获取鼠标相对于浏览器可视区域的位置
在IE9+和其他主流浏览器下,获取鼠标相对浏览器可视区域的位置,代码如下:
function (ev){
   ev.clienX //获取鼠标距离浏览器可视区域左边的距离
   ev.clienY //获取鼠标距离浏览器可视区域顶部的距离
}
在ie浏览器下,获取鼠标距离浏览器可视区域的位置,代码如下:
function (){
   window.event.clienX //获取鼠标距离浏览器可视区域左边的距离
   window.event.clienY //获取鼠标距离浏览器可视区域顶部的距离
}
兼容所有浏览器情况下,获取鼠标相对于浏览器可视区域的位置,代码如下
function (ev){
   var ev = ev || window.event;
   ev.clienX //获取鼠标距离浏览器可视区域左边的距离
   ev.clienY //获取鼠标距离浏览器可视区域顶部的距离
}


三、pageX | pageY 获取鼠标相对于文档的位置
在IE9+和其他主流浏览器下,获取鼠标相对于文档的位置,代码如下:
function (ev){
   ev.pageX //获取鼠标相对于文档的左边的距离
   ev.pageY //获取鼠标相对于文档的顶部的距离
}
在IE8以下浏览器包括IE8浏览器,如何获取鼠标相对于文档的位置??
获取鼠标相对于浏览器可视区域的位置 + 滚动条移动的距离 = 获取鼠标相对于文档的位置
解决方法一:
function(ev){
   try{
      //IE9+ 和 其他主流浏览器
      ev.pageX  //鼠标距离于文档的左面的距离
      ev.pageY  //鼠标距离于文档的顶部的距离
   }catch(err){
      //IE8 IE7 IE6
      window.event.clientX+document.documentElement.scrollLeft  //鼠标距离于文档的左面的距离
      window.event.clientY+document.documentElement.scrollTop   //鼠标距离于文档的顶部的距离
   }
}
解决方法二:
function (ev){
   var ev = ev || window.event;
   var sLeft = document.body.scrollLeft == 0 ? document.documentElement.scrollLeft : document.body.scrollLeft ;
   var sTop = document.body.scrollTop == 0 ? document.documentElement.scrollTop : document.body.scrollTop ;
   ev.clientX + sLeft //获取鼠标距离浏览器可视区域左边的距离
   ev.clientY + sTop  //获取鼠标距离浏览器可视区域顶部的距离
}
注释:在Chrome可以通过document.body.scrollLeft,document.body.scrollTop计算出页面滚动位移,而在IE、firefox下可以通过document.documentElement.scrollLeft ,document.documentElement.scrollTop。

转载于:https://www.cnblogs.com/wangbinweb/p/5632470.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值