Originariamente inviato da fcaldera
io suggerirei questo percorso:
- definisci il tuo array di frasi (1,2,3,4..., 15)
- lo scombini (shuffle) (6,11,4,14,7...)
- lo leggi nel nuovo ordine in sequenza
al termine puoi decidere se ripartire nell'ordine scombinato oppure fare un nuovo shuffle
copia e incolla
codice:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="it" xml:lang="it">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>xhtml 1.0</title>
<script type="text/javascript">
// <![CDATA[
var randomQuotes = function(id) {
/* Fabrizio Calderan - 2009.06.23. */
var
_q = [
'frase 1',
'frase 2',
'frase 3',
'frase 4',
'frase 5'
],
_current = 0,
_last = _q.length,
_element = document.getElementById(id),
_sort = function() { return Math.round(Math.random()) },
_shuffle = function() {
_q.sort(_sort);
// Riporta il nuovo ordine shuffle nella console firebug (se presente)
if (typeof(console) === 'object') console.log(_q);
};
return {
rotate : function(o) {
_shuffle();
(function() {
_element.innerHTML = _q[_current++];
if (_current === _last) {
_current = 0;
if (o.reshuffle) _shuffle();
};
setTimeout(arguments.callee, o.pause);
})();
}
}
};
onload = function() {
randomQuotes('citation').rotate({
'pause' : 2000, // millisecondi di attesa tra una citazione e la seguente
'reshuffle' : true // cambia o meno l'ordine ad ogni sequenza completata
});
}
// ]]>
</script>
</head>
<body>
<h1>Citazioni random</h1>
<q style="font-size: 32px"><cite id="citation"></cite></q>
</body>
</html>
Edit:
- la funzione randomQuotes accetta come argomento l'id dell'elemento in cui si devono scrivere le citazioni.
- il metodo rotate accetta un invece oggetto in cui definire 'pause' e 'reshuffle'. Impostando a true quest'ultima chiave, ad ogni ciclo completato, l'ordine dell'array stesso viene nuovamente cambiato (se hai la firebug installata puoi vederne il comportamento nella console).
Keywords: ripetere rotazione citazioni aforismi frasi random ordine ordinamento caso casuali casuale senza ripetizioni