- 24
- 0
1、项目中遇到的需求:鼠标进入某个元素,有个小简介,所以在鼠标停留位置需要显示一个弹出框。我绑定的是mouseenter 和 mouseleave事件,鼠标进入元素显示弹出框,离开元素隐藏弹出框。但是鼠标进入元素,在元素里面滑动的时候,弹出框会不停的闪现,特别是鼠标从元素左上角往右下角方向滑动时,弹出框闪现的更厉害。
2、自己上网搜的时候,很多都是说mouseenter和mouseover、mouseleave和mouseout的区别,我懂它们之间的区别,我觉得此bug应该与这个无关吧?
3、上代码,求大神给与解答疑惑,谢谢了~~~
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>悬停弹出框</title>
<style>
#contain{position: relative;}
#d1,#d2{
width:50px;
height:50px;
background:pink;
position:absolute;
text-align:center;
line-height:50px;
top:200px;
left:400px;
}
#d2{background:lightblue;left:700px;}
#popupBox{
width:200px;
height:200px;
border:1px solid #000;
background:#ddd;
position:absolute;
display:none;
}
</style>
</head>
<body>
<div id="contain">
<div id="d1">1</div>
<div id="d2">2</div>
</div>
<!-- 弹出框 -->
<div id="popupBox"></div>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
//获取鼠标位置
function mouseCoords(e){
e= e || window.event;
if(e.pageX || e.pageY){
return {x:e.pageX, y:e.pageY};
} else{
return {
x:e.clientX + document.body.scrollLeft - document.body.clientLeft,
y:e.clientY + document.body.scrollTop - document.body.clientTop
}
}
}
// 绑定事件
$("#contain").on("mouseenter","div",function(e){
$("#popupBox").show();
var mousePos = mouseCoords(e);
$("#popupBox").css({
"top":mousePos.y,
"left":mousePos.x
})
}).on("mouseleave","div",function(){
$("#popupBox").hide();
});
</script>
</body>
</html> - 共 0 条
- 全部回答
-
随性洒脱 普通会员 1楼
在JavaScript中,当元素的
mouseenter事件被触发时,浏览器会创建一个新的event对象并将其传递给相应的处理函数。在处理函数中,我们可以使用event.target属性来获取触发mouseenter事件的元素,然后检查这个元素是否在我们想要处理的范围内。如果这个元素不在我们想要处理的范围内,那么我们就不会执行任何操作,这就是为什么
mouseenter事件会不停地触发。但是,如果我们想要阻止这个元素的默认行为,例如移动到鼠标离开的位置,我们可以使用event.stopPropagation()方法来阻止事件的默认传播。例如,如果我们有一个包含多个
<li>元素的列表,我们想要阻止鼠标在列表中移动时,列表中的所有li元素都会被移动到鼠标离开的位置,我们可以这样做:javascript document.addEventListener('mouseenter', function(event) { event.stopPropagation(); // 在这里处理鼠标离开的事件 });这将阻止鼠标在列表中移动时,列表中的所有
li元素都会被移动到鼠标离开的位置。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
