基于JavaScript获取鼠标位置的各种方法

 更新时间:2015年12月16日 10:23:51   作者:风雨后见彩虹  
这篇文章主要介绍了基于JavaScript获取鼠标位置的各种方法 ,需要的朋友可以参考下

在一些DOM操作中我们经常会跟元素的位置打交道,鼠标交互式一个经常用到的方面,令人失望的是不同的浏览器下会有不同的结果甚至是有的浏览器下没结果,这篇文章就上鼠标点击位置坐标获取做一些简单的总结,没特殊声明代码在IE8,FireFox,Chrome下进行测试兼容

鼠标点击位置坐标

相对于屏幕

如果是涉及到鼠标点击确定位置相对比较简单,获取到鼠标点击事件后,事件screenX,screenY获取的是点击位置相对于屏幕的左边距与上边距,不考虑iframe因素,不同浏览器下表现的还算一致。

function getMousePos(event) {
      var e = event || window.event;
      return {'x':e.screenX,'y':screenY}
    } 

相对浏览器窗口

简单代码即可实现,然而这是还不够,因为绝大多数情况下我们希望获取鼠标点击位置相对于浏览器窗口的坐标,event的clientX,clientY属性分别表示鼠标点击位置相对于文档的左边距,上边距。于是类似的我们写出了这样的代码

function getMousePos(event) {
      var e = event || window.event;
      return {'x':e.clientX,'y':clientY}
    } 

相对文档

简单测试也没什么问题,但是clientX与clientY获取的是相对于当前屏幕的坐标,忽略页面滚动因素,这在很多条件下很有用,但当我们需要考虑页面滚动,也就是相对于文档(body元素)的坐标时怎么办呢?加上滚动的位移就可以了,下边我们试试怎么计算页面滚动的位移。

其实在Firefox下问题会简单很多,因为Firefox支持属性pageX,与pageY属性,这两个属性已经把页面滚动计算在内了。

在Chrome可以通过document.body.scrollLeft,document.body.scrollTop计算出页面滚动位移,而在IE下可以通过document.documentElement.scrollLeft ,document.documentElement.scrollTop

function getMousePos(event) {
      var e = event || window.event;
      var scrollX = document.documentElement.scrollLeft || document.body.scrollLeft;
      var scrollY = document.documentElement.scrollTop || document.body.scrollTop;
      var x = e.pageX || e.clientX + scrollX;
      var y = e.pageY || e.clientY + scrollY;
      //alert('x: ' + x + '\ny: ' + y);
      return { 'x': x, 'y': y };
    } 

以上内容是小编给大家介绍的基于JavaScript获取鼠标位置的各种方法,希望大家喜欢。

相关文章

  • 解决JavaScript layui 下拉框不显示的问题

    解决JavaScript layui 下拉框不显示的问题

    今天小编就为大家分享一篇解决JavaScript layui 下拉框不显示的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • javascript实现贪吃蛇游戏(娱乐版)

    javascript实现贪吃蛇游戏(娱乐版)

    这篇文章主要为大家详细介绍了javascript实现贪吃蛇,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-08-08
  • label+input实现按钮开关切换效果的实例

    label+input实现按钮开关切换效果的实例

    下面小编就为大家带来一篇label+input实现按钮开关切换效果的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • JS实现的颜色实时渐变效果完整实例

    JS实现的颜色实时渐变效果完整实例

    这篇文章主要介绍了JS实现的颜色实时渐变效果,结合实例形式分析了JavaScript结合时间函数定时触发动态改变页面元素属性的相关技巧,需要的朋友可以参考下
    2016-03-03
  • JavaScript检测原始值、引用值、属性

    JavaScript检测原始值、引用值、属性

    这篇文章主要介绍了JavaScript检测原始值、引用值、属性的相关资料,非常不错具有参考借鉴价值,需要的朋友可以参考下
    2016-06-06
  • JavaScript中setTimeout()的具体用法

    JavaScript中setTimeout()的具体用法

    本文主要介绍了JavaScript中setTimeout()的具体用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • JavaScript代码性能优化总结篇

    JavaScript代码性能优化总结篇

    本文给大家总结了有关js代码性能优化的相关知识,非常不错,感兴趣的朋友一起学习吧
    2016-05-05
  • javascript实现点击提交按钮后显示loading的方法

    javascript实现点击提交按钮后显示loading的方法

    这篇文章主要介绍了javascript实现点击提交按钮后显示loading的方法,涉及javascript动态设置页面元素样式的相关技巧,需要的朋友可以参考下
    2015-07-07
  • JavaScript利用fetch实现异步请求的方法实例

    JavaScript利用fetch实现异步请求的方法实例

    传递信息到服务器,从服务器获取信息,是前端发展的重中之重,尤其是现在前后端分离的大前提下,前后端的数据交互是前端的必修科目了,下面这篇文章主要给大家介绍了关于JavaScript利用fetch实现异步请求的相关资料,需要的朋友可以参考借鉴。
    2017-07-07
  • 前端JavaScript实现文件压缩的全面优化指南

    前端JavaScript实现文件压缩的全面优化指南

    JavaScript文件大小直接影响网页加载速度和用户体验,本文将详细介绍从基础到高级的各种JavaScript压缩优化技术,小伙伴可以根据需求进行选择
    2025-04-04

最新评论