Я хотел бы предложить алгоритм, который выбирает случайное слово из оставшихся скрытых слов, так что каждый цикл гарантировано, чтобы показать новое слово, пока все не будут показаны. Это начинается со списка всех слов, затем выбирает один случайным образом, удаляет его из списка, оживляет его, а затем повторяет цикл, выбирающий следующий из оставшихся в списке и т. Д. Вместо таймера, он использует функцию завершения из анимации, чтобы начать следующее слово.
function fadeInRandom() {
var words = $('#wordcloud a');
function fadeNext() {
if (words.length) {
var index = Math.floor(Math.random() * words.length);
var item = words.eq(index);
words = words.not(item);
item.animate({color: "#89171a"}, 800, fadeNext);
}
}
fadeNext();
}
fadeInRandom();
Если у вас так много слов, которые вы хотели бы выцветания несколько слов одновременно, вы можете просто делать это (что будет делать четыре одновременно):
function fadeInRandom() {
var words = $('#wordcloud a');
function fadeNext() {
if (words.length) {
var index = Math.floor(Math.random() * words.length);
var item = words.eq(index);
words = words.not(item);
item.animate({color: "#89171a"}, 800, fadeNext);
}
}
fadeNext();
fadeNext();
fadeNext();
fadeNext();
}
fadeInRandom();
Или, если вы хотите, четыре одновременно и равномерно, вы можете сделать это:
function fadeInRandom() {
var words = $('#wordcloud a');
function fadeNext() {
if (words.length) {
var index = Math.floor(Math.random() * words.length);
var item = words.eq(index);
words = words.not(item);
item.animate({color: "#89171a"}, 800, fadeNext);
}
}
fadeNext();
setTimeout(fadeNext, 50);
setTimeout(fadeNext, 100);
setTimeout(fadeNext, 150);
setTimeout(fadeNext, 200);
setTimeout(fadeNext, 250);
setTimeout(fadeNext, 300);
setTimeout(fadeNext, 350);
setTimeout(fadeNext, 400);
setTimeout(fadeNext, 450);
setTimeout(fadeNext, 500);
setTimeout(fadeNext, 550);
setTimeout(fadeNext, 600);
setTimeout(fadeNext, 650);
setTimeout(fadeNext, 700);
setTimeout(fadeNext, 750);
}
fadeInRandom();
Изменить всю document.ready() код для этого:
$(document).ready(function(){
var count = 0;
for(count=0;count<words.length;count++){
$('#wordcloud').append('<a href="'+words[count].url+'">'+words[count].text+'</a>')
}
for(count=0;count<6;count++){
$('#wordcloud').append($('#wordcloud').html());
}
for(count = 0 ; count < $('#wordcloud a').length ; count++){
$('#wordcloud a').eq(count).css('font-size', $.randomBetween(10, 20)+'px');
}
// Random Fade In
function fadeInRandom() {
var words = $('#wordcloud a');
function fadeNext() {
if (words.length) {
var index = Math.floor(Math.random() * words.length);
var item = words.eq(index);
words = words.not(item);
item.animate({color: "#89171a"}, 800, fadeNext);
}
}
fadeNext();
setTimeout(fadeNext, 50);
setTimeout(fadeNext, 100);
setTimeout(fadeNext, 150);
setTimeout(fadeNext, 200);
setTimeout(fadeNext, 250);
setTimeout(fadeNext, 300);
setTimeout(fadeNext, 350);
setTimeout(fadeNext, 400);
setTimeout(fadeNext, 450);
setTimeout(fadeNext, 500);
setTimeout(fadeNext, 550);
setTimeout(fadeNext, 600);
setTimeout(fadeNext, 650);
setTimeout(fadeNext, 700);
setTimeout(fadeNext, 750);
}
fadeInRandom();
// Fade In and Fade Out on Hover
$("#wordcloud a").hover(function() {
$(this).stop().animate({ color: "#89171a"}, 800);
},function() {
$(this).stop().animate({ color: "#2f2f2f" }, 800);
});
});
Я пытался получить вариант три на работу, и я не был успешным. Я уверен, что это что-то тривиальное, но я не могу понять это. Я загрузил все на один и тот же сайт http://www.cybernetiksolutions.com/wordcloud – thebradnet
@thebradnet - вы никогда не вызывали 'fadeInRandom()', чтобы инициировать его. Положите вызов 'fadeInRandom()' сразу после определения функции. – jfriend00
Я считаю, что я просто сделал это и все еще ничего. Первоначально в моем скрипте я имел следующую строку кода, чтобы все сразу исчезало «$ (« # wordcloud »). Delay (1000) .fadeIn (1000); Если я удалю и ничего не загрузится, даже если ваш код не присутствует. Я прошел, чтобы убедиться, что все закрывается, и все от того, что я могу сказать. Я загрузил исправленную копию в ранее предоставленную ссылку. Спасибо за ваше время и терпение. Я довольно новичок в JQuery и Javascript, и я стараюсь учиться по пробным версиям и ошибкам. Так что еще раз спасибо. – thebradnet