gpt4 book ai didi

javascript - 基于模板的动态 div 渲染与动画

转载 作者:行者123 更新时间:2023-12-01 05:21:24 25 4
gpt4 key购买 nike

以下代码使用模板根据记录数组显示 div。在大多数情况下它工作得很好。我还添加了一个动画来显示行。但所有行都一起执行动画。

我们如何修改它以仅在第一行渲染完成且动画速度较慢后才开始第二行渲染。 jQuery 或 Bootstrap 解决方案都可以。

Fiddle 1

更新:我也尝试过“链接”方法 - 但这不起作用。 Fiddle 2

HTML

<body>
<script id="template" type="text/html">
<div style="border:1px solid silver; float:left; min-height:55px; width:500px;background-color:white;margin:5px 1px 1px 1px; display:none;">
{CostTypeName}-{Quantity}-{ServicePeriodEndDate}
</div>
</script>

<a id="lnkGetServiceCharges" class="btn icon-btn btn-primary" href="#" style="font-size:20px;">
<span class="glyphicon btn-glyphicon glyphicon-save img-circle text-primary"></span>
Click to Run Demo &nbsp; &nbsp; &nbsp;
</a>

<div id="divContainer">
</div>

</body>

jQuery

var result =[{"CostTypeName":" Cost1","Quantity":1.00,"ServicePeriodEndDate":"\/Date(1514678400000)\/"},{"CostTypeName":"Cost2","Quantity":0,"ServicePeriodEndDate":"\/Date(1488499200000)\/"},{"CostTypeName":"Cost3","Quantity":2,"ServicePeriodEndDate":"\/Date(1488499200000)\/"}
]

var template = $('#template').html();

function render(template, data) {
var patt = /\{([^}]+)\}/g;
return template.replace(patt, function(_, key) {
return data[key];
});
}

$(document).ready(function() {

$("#lnkGetServiceCharges").click(function (event) {
fireDemo();
event.preventDefault();
});

});

function fireDemo()
{
$.each(result, function(index,item)
{
//alert(item.CostTypeName);
var divRef = render(template, item);
$(divRef).appendTo('#divContainer').show('slow');
});
}

最佳答案

您正在循环中触发所有动画,这些动画似乎会同时触发,因为循环迭代得非常快。您可以尝试超时,也可以重新设计代码,以便它们依次执行:

function fireDemo()
{

//alert(item.CostTypeName);
var divRef = render(template, item);
$(result).first().appendTo('#divContainer').show('slow', function showNext() {
$( this ).next().appendTo('#divContainer').show( "slow", showNext );
});

}

编辑:实际上在 jQuery show() docs 上有一个确切场景的示例。这是示例,我还在上面编辑了代码

$( "#showr" ).click(function() {
$( "div" ).first().show( "fast", function showNext() {
$( this ).next( "div" ).show( "fast", showNext );
});
});

关于javascript - 基于模板的动态 div 渲染与动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43190439/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com