0

Web ページに引用符を表示したいのですが、配列に 10 個の引用符があります。配列quotes[]から任意の 1 つの引用符をランダムに選択して、1 秒ごとに変更したいと考えています。JavaScript のみを使用してこれを実行したいと考えています。

使っsetTimeoutたけど全部ダメ。誰でも私が使用できるダミーコードまたは機能を手伝ってくれますか?

4

5 に答える 5

1

を使用して、次のアプローチをお勧めしますwindow.setInterval()

var q = ['quote 1', 'quote 2', 'quote 3', 'pick your own note'];

function quoteChange (target, quotes) {
    if (!quotes || !target) {
        return false;
    }
    else {
        var n = Math.floor(Math.random() * quotes.length),
            text = 'textContent' in document ? 'textContent' : 'innerText'
        target[text] = quotes[n];
    }
}

var change = window.setInterval(function(){
    quoteChange(document.getElementById('demo'), q);
}, 1000);

JS フィドルのデモ

参考文献:

于 2013-08-03T15:21:11.930 に答える
1

setIntervalの代わりに使用しsetTimeOutます。

以下のリンクに示されていることに従うと、魅力的に機能するはずです。

https://developer.mozilla.org/en-US/docs/Web/API/window.setInterval

于 2013-08-03T15:19:30.050 に答える
0

これを使って :

setInterval ( ChangeText, 1000 ); //Function Name,Time to repeat this funcion

function ChangeText(){
  var randNumber =  Math.floor((Math.random()*10)+1);
  var quote = quotes[randNumber];
  var String = document.getElementById("LabelName");
  String.innerHTML = quote;
}
于 2013-08-03T15:23:15.793 に答える
0

もちろん、setInterval を使用することも、以下のように setTimeout を使用することもできます。

 var quotes = ['first', 'second', 'third'];
 function updateQuote(){
    var selectedIndex = Math.floor(Math.random() * quotes.length);
    container.innerText = quotes[selectedIndex];
    setTimeout(updateQuote,1000);
 }

 updateQuote();

作業サンプルはこちら: http://plnkr.co/edit/?p=preview

于 2013-08-03T15:23:20.723 に答える