简体   繁体   English

在鼠标悬停时显示/隐藏 DIV 容器

[英]Show/Hide DIV container on mouse over

Expected logic:预期逻辑:

On mouse over main-navigation button, show - "advantage" Div container.在将鼠标悬停在主导航按钮上时,显示 - “advantage” Div 容器。

If user mouse over on "advantage" Div container, still show this container and allow user to click.如果用户将鼠标悬停在“优势”Div 容器上,仍会显示此容器并允许用户单击。

On mouse out of "Button" & "advantage" container - hide "advantage" Div container.鼠标移出“按钮”和“优势”容器 - 隐藏“优势” Div 容器。

Present Behaviour:当前行为:

On mouse over main-navigation button, show - "advantage" Div container.在将鼠标悬停在主导航按钮上时,显示 - “advantage” Div 容器。

If user mouse out of "Button", "advantage" container fade out & fade in. User cant able to click.如果用户将鼠标移出“按钮”,“优势”容器会淡出并淡入。用户无法点击。

Not sure, which logic is missed out.不确定,错过了哪个逻辑。 If user on "advantage" container, it should not hide or fadeout.如果用户使用“优势”容器,则不应隐藏或淡出。

HTML: 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: 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(); 
});
    <div class="fadebox">
            <div class="main-navigation">
                <a href="javascript:void(0);" class="button">Button</a>
            </div>
            <div class="advantage" style="display: none;">
                <div class="content">
                    <p>demo content to load <a href="http://www.google.com">test</a></p>
                </div>
            </div>
        </div>
 $('.main-navigation .button').on('mouseover', function (e) {
                $('.advantage').fadeIn();
                $('.advantage').find("button, a").on("click", function (e) {
                    e.stopPropagation();
                });`enter code here`
            });
            $('.fadebox').on('mouseleave', function () {
                $('.advantage').fadeOut();
            })

Check this solution.it will work fine as per your request.检查此解决方案。它将根据您的要求正常工作。

The main problem is that your html button style class is given with missing double quotes (").主要问题是您的 html 按钮样式 class 缺少双引号 (")。

HTML 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>

You can also use jquery for mouse actions (.mouseover() and.mouseleave()) as shown below:您还可以使用 jquery 进行鼠标操作(.mouseover() 和 .mouseleave()),如下所示:

JS: JS:

$(".main-navigation .button").mouseover(function(){
 $('.advantage').fadeIn(400);
}); 
$(".main-navigation .button").mouseleave(function(){
    $('.advantage').fadeOut(800);
}).find("button, a").on("click", function (e) {
e.stopPropagation();
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM