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

如何实现Flask渲染的HTML表格行逐行延迟显示?

实现Flask表格行逐行延迟显示的方案

步骤1:修改Jinja2模板代码

给表格的数据行添加统一类名和索引标识,同时初始隐藏行:

<table class="styled-table">
    <tr>
    {% for header in headings %}
        <th>{{ header }}</th>
    {% endfor %}
    </tr>
    {% for idx, row in enumerate(data_listed) %}
        <tr class="table-row" data-index="{{ idx }}" style="display: none;">
        {% for cell in row %}
            <td>{{ cell }}</td>
        {% endfor %}
        </tr>
    {% endfor %}
</table>

步骤2:添加JavaScript控制延迟显示

在页面底部(或在<head>中给<script>加defer属性)插入以下代码,控制每行按顺序延迟显示:

document.addEventListener('DOMContentLoaded', function() {
    const rows = document.querySelectorAll('.table-row');
    // 自定义每行延迟间隔(毫秒),这里设为300ms
    const rowDelay = 300;

    rows.forEach((row, index) => {
        setTimeout(() => {
            row.style.display = 'table-row';
            // 可选:添加淡入动画让显示更自然
            row.style.opacity = '0';
            row.style.transition = 'opacity 0.3s';
            setTimeout(() => row.style.opacity = '1', 10);
        }, index * rowDelay);
    });
});

可选:用CSS分离样式(更规范)

如果不想用内联样式,可把隐藏和动画逻辑写到CSS中:

.table-row {
    display: none;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.table-row.show {
    display: table-row;
    opacity: 1;
}

对应的JavaScript代码修改为添加类名触发显示:

document.addEventListener('DOMContentLoaded', function() {
    const rows = document.querySelectorAll('.table-row');
    const rowDelay = 300;

    rows.forEach((row, index) => {
        setTimeout(() => row.classList.add('show'), index * rowDelay);
    });
});

原理说明

Flask后端会一次性渲染所有表格行,通过初始隐藏+前端JS延迟触发显示的方式,实现视觉上的逐行加载效果。延迟间隔可根据需求调整,动画效果能避免显示过于生硬。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 14:15:39