You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MudTable单元格颜色动画需求:实现3秒后切换颜色的效果

实现MudTable单元格3秒颜色切换动画

方案:使用CSS关键帧动画

这种方式比纯C#逻辑更简洁,能直接实现定时颜色过渡效果。

  1. 添加CSS动画定义
    在你的Blazor组件的<style>标签中加入以下代码:
/* 定义颜色过渡动画 */
@keyframes colorShift {
  0% { color: #ff4444; } /* 初始颜色 */
  100% { color: #00C851; } /* 3秒后切换的目标颜色 */
}

/* 应用动画的样式类 */
.cell-animate {
  animation: colorShift 3s forwards; /* forwards保持动画结束后的状态 */
  font-size: 2.9rem;
  font-weight: 500;
  text-align: center;
}

/* 默认单元格样式 */
.cell-default {
  font-size: 0.9rem;
  font-weight: 500;
  text-align: center;
}
  1. 修改样式判断方法
    把原有的GetCellStyle改为返回CSS类名,避免内联样式的冗余:
private string GetCellClass(DateTime odbior, DateTime realizacja)
{
    return odbior <= realizacja ? "cell-animate" : "cell-default";
}
  1. 更新表格单元格调用
    将MudTd的Style属性替换为Class,调用新的方法:
<MudTd Class="@GetCellClass(context.odbior, context.realizacja)" DataLabel="Wysyłka">
    @context.odbior.ToString("dd/MM/yyyy")
</MudTd>

可选优化:动态控制颜色

如果需要在C#代码中动态修改初始/目标颜色,可以使用CSS变量:

  1. 在组件根元素绑定变量:
<div style="--initial-color:@_initialColor; --target-color:@_targetColor;">
    <MudTable>
        <!-- 表格内容 -->
    </MudTable>
</div>
  1. 在C#中定义颜色变量:
private string _initialColor = "#ff4444";
private string _targetColor = "#00C851";
  1. 修改CSS动画使用变量:
@keyframes colorShift {
  0% { color: var(--initial-color); }
  100% { color: var(--target-color); }
}

这样就能通过修改_initialColor和_targetColor的值,动态调整动画的颜色。

内容的提问来源于stack exchange,提问作者Przemo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 00:25:15