Модификация простого скрипта jQuery для рандомизации текста с таймером - PullRequest
2 голосов
/ 08 октября 2011

Я использую скрипт jQuery, который показывает случайный слоган из массива при загрузке страницы. Однако я хочу, чтобы этот лозунг менялся каждые 6 секунд. Как я могу это сделать?

Это рабочая скрипка , а вот код:

$(document).ready(function () {
    phrases = [
        "a creative Chicago design shop",
        "design is simple",
        "we build fine, fine things",
        "we love creating"
    ];

    var phrase = phrases[Math.floor(Math.random()*phrases.length)]
    $('#site').text(phrase);
});

Ответы [ 2 ]

1 голос
/ 08 октября 2011

Fiddle!

$(document).ready(function () {
    changePhrase();
    var rotate = setInterval(changePhrase, 6000);
});

function changePhrase() {
    phrases = [
        "a creative Chicago design shop",
        "design is simple",
        "we build fine, fine things",
        "we love creating"
    ];

    currentPhrase = $('#site').text();
    if (phrases.indexOf(currentPhrase)) phrases.splice(phrases.indexOf(currentPhrase), 1); // remove current phrase from array to prevent repetitions

    var phrase = phrases[Math.floor(Math.random()*phrases.length)]
    $('#site').text(phrase);
}

Обновление: Брошенный в двухслойный текст, который предотвращает повторение одной и той же фразы два раза подряд для хорошей меры.

0 голосов
/ 08 октября 2011

это изменит фразы на бесконечное количество времени, но вы должны использовать плагин Jquery Timers.

$(document).everyTime(1000, function(i) {
  var phrase = phrases[Math.floor(Math.random()*phrases.length)]
$('#site').text(phrase);
}, 0);
...