javascript - 仅顶部的 MouseOut 事件

标签 javascript

我正在尝试使用 mouseOut 事件处理程序,但我想限制该事件在鼠标从顶部退出时触发,而不是从右侧、左侧或底部退出。

var executed = false;

function mouseoutHandler(e){
  window.removeEventListener("mouseout", mouseoutHandler, false);
    executed = true;
    document.getElementById(“element”).style.width = "300px";
}

function runOnce() {
  window.addEventListener("mouseout", mouseoutHandler, false);
};


runOnce();

我可以添加什么来使其仅在 mouseOut 位于元素顶部时触发?

最佳答案

您可以检查 clientY 是否小于元素的 offsetTop
只有当鼠标光标离开顶部时,才会出现这种情况

const myElement = document.getElementById('element');
var executed = false;

const mouseoutHandler = (e) => {
  if(e.clientY <= myElement.offsetTop) {
    myElement.style.width = '100px';
    executed = true;
    myElement.removeEventListener('mouseout', mouseoutHandler);
  }
}

myElement.addEventListener('mouseout', mouseoutHandler, false);
body{height:100vh;display:flex;justify-content:center;align-items:center}#element{width:200px;height:100px;background:#333}
<div id="element">&nbsp;</div>


编辑

IE 的非箭头函数

var myElement = document.getElementById('element');
var executed = false;

function mouseoutHandler(e) {
  if(e.clientY <= myElement.offsetTop) {
    myElement.style.width = '100px';
    executed = true;
    myElement.removeEventListener('mouseout', mouseoutHandler);
  }
}

myElement.addEventListener('mouseout', mouseoutHandler, false);
body{height:100vh;display:flex;justify-content:center;align-items:center}#element{width:200px;height:100px;background:#333}
<div id="element">&nbsp;</div>

关于javascript - 仅顶部的 MouseOut 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55127582/

相关文章:

javascript - Puppeteer 打开 URL 时超时

javascript - 检查是否支持 <a href ="tel:5555555">

javascript - HTML:JavaScript:阻止表单提交和调用 Javascript 函数

Javascript 将一个 onclick 事件附加到所有带有 href 变量的链接

javascript - 简单的 NodeJS 路由器问题——错误的案例陈述?

javascript - 开 Jest : test that an array contains none of these values?

javascript - gulp 通知依赖于任务完成而无需 .pipe

javascript - javascript 中代码的执行顺序 - navigator.geolocation

javascript - 使用 javascript 代码调用 c# 函数

javascript - OO JavaScript 调用父方法