У меня есть функция, которая получает людей из базы данных, а затем, в jquery, просматривает их, анимируя их. Проблема ... которую я вижу довольно распространенной, заключается в том, что javascript запускает все элементы за доли секунды, и задержка будет применяться ко всем.
У меня есть поиск по стеку и я нашел несколько ссылок на это, но ни один из них не работает с моим кодом ниже. Любые идеи будут с благодарностью.
$individuals = $wpdb->get_results("SELECT * FROM wp_sisanda_individualsponsors");
?>
<script type="text/javascript">
function individual_sponsors() {
var individuals = <?php echo json_encode($individuals) ?>;
individuals.sort(function() { return 0.5 - Math.random() });
jQuery.each(individuals, function (i, elem) {
var topRand = Math.floor(Math.random()*301);
var leftRand = Math.floor(Math.random()*301);
var startLeftRand = Math.floor(Math.random()*301);
jQuery('.individuals').append('<div id="'+ elem.id + '" class="indiv" style="position: absolute; bottom: -70px; left:' + startLeftRand +'px;">' + elem.name + '</div>');
jQuery('#' + elem.id).animate({
top: -100,
left: Math.floor(Math.random()*301)
},20000 + Math.floor(Math.random()*50000));
});
}
</script>
Как вы можете видеть, предметы получают случайную горизонтальную начальную позицию и конечную позицию, а также случайную скорость, это хорошо работает, за исключением того, что все еще существует большая группа предметов.
Я попытался ограничить первоначально запрашиваемую сумму - случайно выбрал несколько, а затем несколько раз вызывал функцию с ожиданием php, но это, я думаю, вызвало цикл ifinite ... не уверен ... страница была т погрузка.
Я надеюсь, что кто-то может указать мне правильное направление
В идеале это оживило бы нескольких ... подожди ... а потом сделай еще ...
Заранее спасибо