如果父元素有边框,当鼠标同时退出父元素和子元素时,如何避免来自父元素的鼠标悬停事件
How to avoid the mouseover event from the parent element when the mouse is exiting both parent and child if the parent has a border
编辑:我想要的是嵌套的div不被移动,当鼠标离开它和父div。我很确定它是目前移动,因为边界以某种方式扩展父进一步超出嵌套的div。我想保持边界。
就像有人曾经说过的,一个演示胜过1000个单词。
我有一个div嵌套在div
<div class='parent'>
<div>Check me out</div>
</div>
有一些样式
.parent {
width: 100%;
border: 1px solid black;
}
.parent div {
display: inline-block;
position: relative
}
和一些附带的Javascript
var navBar = document.querySelector('div.parent');
var navItems = navBar.querySelector('div');
var moveNav = false;
var overItems = false;
navBar.addEventListener('mouseout', function() { moveNav = false; });
navItems.addEventListener('mouseover', function() { overItems = true; });
navItems.addEventListener('mouseout', function() { overItems = false; });
navBar.addEventListener('mouseover', function() { moveNav = !overItems && true; });
navBar.addEventListener('mousemove', moveToMouse);
function moveToMouse(e) {
if(!moveNav)
return;
navItems.style.left = (e.offsetX - Math.floor((e.offsetX+navItems.offsetWidth)/navBar.offsetWidth) * (e.offsetX + navItems.offsetWidth - navBar.offsetWidth + 10)) + 'px'
}
目的是当鼠标在.parent
div内时,将子div的一部分保留在鼠标下方。*
我想知道的是如何使子div不被移动,因为鼠标退出.parent
div?
换句话说,我想让它像小提琴一样。小提琴之间的区别是,第一个在.parent
周围有边界,第二个是无边界的。
当然,我已经注意到,孩子div到处乱跳,而不是平稳移动。关于如何避免这种情况的建议是受欢迎的,但不是期望的。
*如果有更好的方法,请指出来**
**不要说"use jQuery"
在带边框的div示例中,我使用mouseenter事件而不是mouseover,它似乎是按您想要的方式工作。
navBar.addEventListener('mouseenter', moveToMouse);
相关文章:
- 如何查明鼠标按下事件是否发生在滚动条上或元素中的其他任何位置
- 将鼠标悬停在同级元素上的 jquery 上轻拂
- 将鼠标悬停在Angular JS中的一个元素上,并将Class添加到另一个元素中
- 如何在元素中处理鼠标事件,但不能在其子元素上处理
- 只要用户将鼠标悬停在jQuery中的某个元素上,就可以执行多次单击
- 单击其他元素或鼠标向上时隐藏输入框,但保留一次焦点
- 如果鼠标在元素上快速移动和关闭,则防止.hoop事件被垃圾邮件发送
- 为什么不是't html<对象>元素响应鼠标事件
- 如何激活下拉菜单:在一个元素上单击768px宽度下方,在另一个元素上将鼠标悬停在768px上方
- 如果鼠标离开父对象,则隐藏元素
- 当鼠标悬停在iframe上时,如何在iframe之外的元素上触发类
- 如何在鼠标悬停时显示带有拉斐尔元素(圆、线)的上下文菜单
- 当鼠标也在触摸另一个元素时,d3.js鼠标悬停事件未被触发
- 从鼠标点(及更多)查询位置元素
- 如何添加效果,以便将鼠标悬停在 SVG 元素上使其变大
- 可缩放容器鼠标上的可拖动元素在创建时从辅助对象上浮动
- 绘制DOM元素:鼠标事件会被背景元素混淆
- Fetch元素鼠标当前指向的Chrome开发工具已启用
- 如何使元素鼠标不可点击,但可以通过javascript单击
- 获取元素鼠标在iframe中的HTML