javascript - 过渡CSS属性使内容看到两次

标签 javascript html css reactjs

enter image description here - 当我单击第 2 部分时,第 2 部分内容将打开。

  • 当我点击第 2 部分内容时,它会关闭,但当它关闭时,我会看到文本两次。
  • 当第 2 部分正文即将关闭时,我看到第 2 部分内容为黑色,但绿色背景消失了
  • 我调试了代码,我认为它是由于过渡 css 属性而发生的,我无法删除它,因为我需要看到平滑的关闭。

过渡:高度0.5s; 过渡:高度 0.5s,padding-top 0.5s,padding-bottom 0.5s;

  • 你能告诉我如何解决这个问题吗?
  • 在 fiddle 中提供我的代码。
.accordion-section {
    border-bottom: solid 1px #000;
}

.accordion-section > h3 {
    padding: 6px;
    font-size: 16px;
    background-color: #CCC;
    margin: 0;
}


.accordion-section > .body {
    height: 0;
    padding: 0 10px;
    overflow-y: hidden;
    transition: height .5s;
    transition: height .5s, padding-top .5s, padding-bottom .5s;
}

最佳答案

根据您提供的 fiddle ,看起来您正在对您提到的部分内容的隐藏和显示进行基于 css 的动画。但是,您似乎没有定义要设置动画的内容,或者至少没有定义要设置动画的所有内容。

您可以替换:

过渡:高度 0.5s,padding-top 0.5s,padding-bottom 0.5s;

过渡:行高 0.5s,边距底部 0.5s,颜色 0.5s,字体大小 0.5s,背景 0.5s,高度 0.5s,内边距 0.5s;

但是,由于您似乎正在对该部分及其内容的所有当前样式进行动画处理,因此您可以简单地使用:

过渡:全部 .5s;

这是应用于您的 fiddle 的更改:

Updated fiddle link

关于javascript - 过渡CSS属性使内容看到两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43707192/

相关文章:

javascript - Angular Web 组件 - @Input 未收到值

javascript - 如何将对象插入 JavaScript 原型(prototype)中的数组?

angularjs - 将div内容拆分为pdf之类的页面

css - jQuery Mobile 面板不会将页面推过去

css - IE7 <button> 和 &lt;input type=button/submit> 奇怪的样式?

css - Bootstrap 3网格系统超过12列不会下降到新行

javascript - 为报价创建幻灯片

javascript - 如何用新的html替换元素内容而不丢失javascript功能?

css - img src SVG 使用 CSS 改变样式

javascript - 删除按钮不会立即在 JavaScript 中从 View 中删除?