jQuery - 隐藏的类没有用淡入淡出显示

Posted

技术标签:

【中文标题】jQuery - 隐藏的类没有用淡入淡出显示【英文标题】:jQuery - hidden class is not being displayed with fadeIn 【发布时间】:2022-01-14 23:36:19 【问题描述】:

我有一个隐藏类fadeThis,当我将鼠标悬停在按钮上时它不会出现。 也许它与另一个类/div发生冲突?

我实际上要做的是在灰色框上创建一个红色淡入淡出,当光标悬停在按钮上时,然后当光标离开框(而不是按钮)时,我希望它返回恢复原状。

我还添加了 CSS 来帮助演示

html

    <div class="imageOne">

        <div class="onClickThis"> <!-- hidden by default-->
            <h2 class="fadeThis">Whatever the text needs to be</h2> <!-- hidden by default-->
        </div>
        <div class="centerButton">
            <button class="btn">View More</button>
        </div>
    </div>

CSS

.imageOne
    height: 300px;
    width: 400px;
    background-color: grey;


.centerButton
    display: flex;
    justify-content:center;
    padding-top:150px;


.btn
    height: 30px;
    width:170px;



.onClickThis
    height: 300px;
    width: 400px;
    background-color: tomato;


javascript

$(document).ready(function () 
    $(".onClickThis").hide();
    $(".fadeThis").hide();
    $(".btn").hover(function () 
        $(".imageOne").fadeIn("slow", function () 
            $(this).addClass("fadeThis onClickThis");
            $(".btn").remove();
        );
        $(".onClickThis").mouseleave(function () 
            $(this).removeClass("fadeThis onClickThis");

        );
    );

);

【问题讨论】:

为什么最后有两个关闭的div?你知道吗? 您正在删除 .btn 并再次尝试在已删除的元素上添加 mouseleave 事件侦听器? 请阅读minimal reproducible example并添加完整的sn-p(edit并单击[&lt;&gt;]),包括相关的css。 .imageOne fadeIn - 没有意义,因为 btn 视图更多位于 .imageOne 内部,因此 imageOne 必须已经可见。除非您提供的 html 不符合您的要求,否则请确保符合要求。 感谢大家的帮助。我会尝试你的建议,看看我会怎么做。我还添加了更多细节和代码来帮助解释我想要实现的目标。 【参考方案1】:

我不明白你在寻找什么。也许您可以提供更多详细信息。

这是一个从您的代码开始的演示,添加了一些更改。

$(document).ready(function () 
    $(".onClickThis, .fadeThis").hide();
  
    $(".btn").hover(function () 
        $(".imageOne").fadeIn("slow", function () 
           $(".onClickThis, .fadeThis").fadeIn( 250 );
           $(".btn").fadeOut();
        );
    );
);
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  
<div class="imageOne">
  <div class="onClickThis"> <!-- hidden by default-->
      <h2 class="fadeThis">Whatever the text needs to be</h2> <!-- hidden by default-->
  </div>
  <div class="centerButton">
      <button class="btn">View More</button>
  </div>
</div>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</body>
</html>

【讨论】:

以上是关于jQuery - 隐藏的类没有用淡入淡出显示的主要内容,如果未能解决你的问题,请参考以下文章

jQuery动画(显示隐藏,淡入淡出,滑动)

jQuery效果之隐藏与显示淡入淡出滑动回调

jQuery效果:隐藏显示切换滑动淡入淡出动画

jQuery 显示和隐藏以及淡出淡入效果

jquery效果- 显示和隐藏 淡入淡出 滑动 隐藏

jQuery 学习02——效果:隐藏/显示淡入淡出滑动动画停止动画Callback链