鼠标移动到浏览器之外,然后松开,此时"mouseup"事件如何监听?

我把"mouseup"事件绑定到"body"元素上了,鼠标松开时执行一个函数。
但是当鼠标移动到浏览器之外的区域时,函数就无法执行了。
我想实现的功能是:当鼠标移动到浏览器之外的时候,鼠标松开,仍可以出发函数。

阅读 13.5k
2 个回答

用js事件委托,绑定到document对象上就可以了

document.addEventListener("mouseup", upHandler, true);
新手上路,请多包涵

鼠标移到浏览器之外,如果在document上绑定了mouseup事件,那么当你mousedown时,event.clentXevent.clinetY就会根据你鼠标在浏览器外的位置产生负值和大于window.innerHeightwindow.innerWidth的值。

所以你要做的事情是:
1.将body的绑定换为document
2.在mouseup事件中加入判断:

document.addEventListener('mouseup', function(e) {
            if(e.clientY > window.innerWidth || e.clientY<0 || e.clientX<0 ||e.clientX>window.innerHeight){
              //在这加入你想执行的代码,此条件下鼠标已经在浏览器外
            }
            }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏