【发布时间】:2019-11-17 03:04:57
【问题描述】:
预期逻辑:
鼠标悬停在主导航按钮上时,显示 - “advantage” Div 容器。
如果用户将鼠标悬停在“advantage”Div 容器上,仍会显示此容器并允许用户单击。
鼠标移出“按钮”和“优势”容器 - 隐藏“优势”Div 容器。
当前行为:
鼠标悬停在主导航按钮上时,显示 - “advantage” Div 容器。
如果用户将鼠标移出“Button”,“advantage”容器会淡出并淡入。用户无法点击。
不确定,漏掉了哪个逻辑。 如果用户在“优势”容器上,它不应隐藏或淡出。
HTML:
<div class="main-navigation">
<a href="javascript:void(0);" class="button">Button</a>
</div>
<div class="advantage">
<div class="content">
<p>demo content to load <a href="http://www.google.com">test</a></p>
</div>
</div>
JS:
$('.main-navigation .button').on('mouseover', function(){
$('.advantage).fadeIn(400);
});
$('.main-navigation .button').on('mouseleave', function(){
$('.advantage).fadeOut(800);
}).find("button, a").on("click", function (e) {
e.stopPropagation();
});
【问题讨论】:
-
主要问题是鼠标移动到
.advantage时肯定会离开按钮,所以它会隐藏div(js代码,第2行)。一个更复杂的解决方案可能是在mouseleave内检查鼠标是否在.addvanatage上,并在这种情况下防止淡出。 -
主要问题是您正在尝试使用 javascript 解决 css 问题。见这里:w3schools.com/cssref/sel_hover.asp
标签: javascript jquery