更改类时如何添加淡入淡出效果? [复制]

Posted

技术标签:

【中文标题】更改类时如何添加淡入淡出效果? [复制]【英文标题】:How to add a fade effect when changing classes? [duplicate] 【发布时间】:2017-02-12 20:15:43 【问题描述】:

我不知道如何在更改类时添加动画效果。

这是我的代码:

$("#a-button").click(function() 
    $("#a-div").toggleClass("hidden show");
);

这可行,但在更改类时没有任何效果。我想让它更平滑,也许像淡入淡出。我该怎么做?

【问题讨论】:

你用谷歌搜索过“jQuery 淡入淡出”吗?因为他们有专门的方法。此外,您可以通过将 css 转换添加到元素来执行此操作。 我知道,但我无法让它与更改交互。好像坏了 那么至少你应该发布你尝试的代码。 .fadeIn('slow') 在那里没有意义。不要只是把意大利面扔在墙上。 "You probably forgot to give a-div a transition." 【参考方案1】:

您可以使用 fadeOut()/fadeIn()hasClass() 条件来检查 div 是否具有特定的类:

$('.show_hide').click(function() 

  if($('#target').hasClass('show'))
    $('#target').fadeOut('normal');
  else
    $('#target').fadeIn('normal');
    
  $('#target').toggleClass("hidden show");
);
#target 
  background: green;
  margin-bottom:15px;
  height:150px;
  padding:5px;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button class="show_hide">Show / Hide</button>
<div id="target" class='show'></div>

【讨论】:

见THISjsfiddle。 我看到@RazvanZamfir .. 而不是addClass/removeClass 我更喜欢使用toggleClass() 而不是:visible 最好检查类IMO。很高兴我能帮上忙。编码愉快。【参考方案2】:

试试这个,让我知道。它是 jQuery 的 fadeToggle。

$("#a-button").click( 
  function() 
    $("#a-div").fadeToggle();
  );

【讨论】:

以上是关于更改类时如何添加淡入淡出效果? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 JQuery 添加淡入淡出或图像过渡效果?

在列表项悬停时更改图像时添加淡入/淡出效果的问题

delphi 窗体的淡入淡出效果

html想做个文字淡入淡出的效果

在多个列表项上使用淡入淡出 jQuery 淡入淡出效果更改图像源

在 pyqt 中的选项卡更改上淡入淡出