[英]MouseOut Event from ONLY the top
我正在尝试使用 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"> </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"> </div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.