【问题标题】:Make a table row fade in as its class changes?让表行随着其类的变化而淡入?
【发布时间】:2022-01-26 10:33:02
【问题描述】:

我有一个按钮被点击以显示表格行:

$(document).ready(function() {
  $("label.deathzone-toggle").click(function() {
    $("tr.deathzone").toggleClass("show");
  });
});
tr.deathzone td {
  display: none;
}

tr.deathzone.show td {
  display: table-cell;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<label class="custom-control-label deathzone-toggle" for="customSwitches">Show Deathzone Inducements</label>

这一切都很好,但我正在尝试淡入/淡出行,我尝试过 fadeIn("slow");但它不起作用。我还尝试将transition:opacity 1.5s ease; 添加到css,但这也不起作用?卡住了!!

【问题讨论】:

标签: html jquery css


【解决方案1】:

您不能像您希望的那样转换显示属性,但您可以转换会产生相同效果的不透明度?!

$(document).ready(function() {
  $("label.deathzone-toggle").click(function() {
    $("tr.deathzone").toggleClass("show");
  });
});
tr.deathzone td {
  display: table-cell;
  opacity:0;
  background:white;
  transition:ease-in-out all 250ms;
}

tr.deathzone.show td {
  opacity:1;
  display: table-cell;
  background:pink;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>



<label class="custom-control-label deathzone-toggle" for="customSwitches">Show Deathzone Inducements</label>

<table>
  <tr class='deathzone'>
    <td>.... some content</td>
  </tr>
</table>

【讨论】:

  • 我想过,但如果我这样做了,这些行仍然会占用页面上的空白空间。
  • 正如我所说,我不认为你可以转换显示属性,所以也许添加 height:0 和转换也
【解决方案2】:

而不是

tr.deathzone td {
  display: none;
}

tr.deathzone.show td {
  display: table-cell;
}

使用

  tr.deathzone td {
      opacity: 0;
      visibility: hidden;
      height: 0;
      transition: opacity 0.5s ease;

    }
   tr.deathzone.show td{
      opacity: 1;
      visibility: visible;
      height: auto;
    }

同样的jquery

$(document).ready(function() {
  $("label.deathzone-toggle").click(function() {
    $("tr.deathzone").toggleClass("show");
  });
});

【讨论】:

  • 谢谢,但这不起作用。
【解决方案3】:

只需使用 .fadeIn("slow") 将 "tr" 的显示属性更改为 none 而不是 "td"s。

tr.deathzone {
 display: none;
}

2 个例子:

https://jsfiddle.net/somidmm/03tn69kx/

function test() {$("#2").fadeToggle("slow");}

https://jsfiddle.net/somidmm/ad6bjh8c/

$(document).ready(function() {
 $("label.deathzone-toggle").click(function() {
  $("tr.deathzone").fadeToggle("slow");
  });
});

【讨论】:

  • 是的,但与其他答案一样,当您再次切换时,该行将保留在那里。
  • 使用 .fadeToggle() 应该可以工作。
  • 很遗憾没有。
  • 真的很抱歉,是的,这确实有效!谢谢!
猜你喜欢
  • 1970-01-01
  • 2013-01-11
  • 1970-01-01
  • 1970-01-01
  • 2014-06-25
  • 2018-09-15
  • 2021-12-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多