【发布时间】:2015-08-28 19:41:41
【问题描述】:
我需要在可滚动的父 div 中从上到下递增地显示按钮行。这些按钮行是使用应用于转换为 html 的文本字符串的替换方法创建的。由于我可以创建和显示 500 多行按钮,因此文本到 html 的转换可能需要几秒钟或更长时间,这会在转换过程中冻结 UI。下面的代码使用 setInterval 解锁 UI 并提供一种很酷的方式来“动画”按钮行的逐渐显示。问题是,目前,整个行集在每个 setInterval 处重复,这不是我想要的,我不知道下一步该做什么。我需要以字符串提供的顺序从上到下递增地显示每一行而不重复,直到满足数组的长度。可滚动的父 div 是 300px 的固定高度。也许延迟加载方法会更好?任何解决此问题的帮助表示赞赏。
var placeholder = $('#placeholder');
placeholder.html(placeholdertohtml(placeholder));
function placeholdertohtml(placeholder){
placeholder.html(placeholder.text().replace(/((\d{2},\d{2}))/g, function(match, number){
var blocks = placeholder.text().split(',').length;
console.log(blocks);
var el = number.substr(0,5).split(',');
var prefix = el[0];
var suffix = el[1];
var t = setInterval(function(){
if (blocks) {
var content = '<p><button>'+prefix+'</button><button>'+suffix+'</button></p>';
$('#placeholder').append(content);
blocks--;
} else {
clearInterval(t);
}
}, 100);
}));
}
【问题讨论】:
标签: javascript jquery arrays sorting lazy-loading