标签中的 CSS 过渡

Posted

技术标签:

【中文标题】标签中的 CSS 过渡【英文标题】:CSS Transitions in Tabs 【发布时间】:2017-05-04 22:01:21 【问题描述】:

为什么我设置的过渡没有动画?我希望由于 animate 类被删除然后重新添加到元素中,因此一旦切换标签,它就会重新设置动画。

https://jsfiddle.net/jstn/Lt6qfv7s/

谢谢,

贾斯汀

$('button').on('click', function () 
	var tab = $(this).attr('data-target');

	$('.tab').removeClass('active');
	$(tab).toggleClass('active');
	
	$('.content').removeClass('animate');
	$(tab).find('.content').toggleClass('animate');
);
.tab:not(.active)  display: none; 

.content  transition: 3s all ease-out; 

.content.animate  opacity: .3; 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button data-target=".tab-1">Tab #1</button>
<button data-target=".tab-2">Tab #2</button>

<div class="tab tab-1">
	<div class="content">This is Tab #1</div>
</div>

<div class="tab tab-2">
	<div class="content">This is Tab #2</div>
</div>

【问题讨论】:

【参考方案1】:

因为你使用display: none,所以删除它并改用opacity: 0

$('button').on('click', function() 
  var tab = $(this).attr('data-target');

  $('.content').removeClass('animate');
  $(tab).find('.content').toggleClass('animate');
);
.content 
  opacity: 0;
  transition: 3s opacity ease-out;

.content.animate 
  opacity: .3;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button data-target=".tab-1">Tab #1</button>
<button data-target=".tab-2">Tab #2</button>

<div class="tab tab-1">
  <div class="content">This is Tab #1</div>
</div>

<div class="tab tab-2">
  <div class="content">This is Tab #2</div>
</div>

【讨论】:

这在技术上回答了问题,但我想设置一个标签。执行此解决方案意味着选项卡 1 仍然存在,您只是看不到它。 @JustinBreen 通过使用position: absolute,您可以将它们从流程中移除......尽管在这种情况下这是否是一个好的解决方案我不能说,因为我需要知道整个标记结构,在这些选项卡之前和之后 好吧,这感觉很老套。然后我必须为我的标签集定义一个特定的高度。一旦对象恢复正常显示,希望能够使用 display: none 的 CSS 过渡。我实际上并没有尝试转换 display 属性。我只想让元素按预期再次运行它的过渡。 @JustinBreen 这类过渡/元素替换通常需要这样,因为它们在顶部/相互下方,并且(大多数情况下)不能用正常的流动元素很好地完成 有道理。除非有人进来显示使用 display none 的方法,否则将使其被接受。

以上是关于标签中的 CSS 过渡的主要内容,如果未能解决你的问题,请参考以下文章

手写笔中的 CSS3 过渡 - 如何为 IE9 降级

CSS插入音视频,过渡,变形,动画效果

CSS背景(渐变)过渡不起作用

css3中的过渡效果和动画效果

CSS:元素本身的过渡属性? [复制]

safari 中的 css3 过渡不顺畅