私は10秒ごとにランダムな見積もりを表示するためのjavascriptコードを書いています。 jqueryを使ってdivとsetIntervalを更新し、アクションを繰り返します。私は、javascript配列からランダムな引用を取得しています。しばらくするとsetIntervalが正常に動作しないのはなぜですか?
しかし、これをテストすると、しばらくして(3〜5分のように)うまく動作していないように見えますが、fadeInやfadeOutのようなjqueryエフェクトがいくつかあります。ここにjsコードがあります。
var quotes = [
"Some String",
"Some String",
"Some String"
];
$(function() {
var $rand = $('div#randomQuote > p');
var random_quote = quotes[Math.floor(Math.random() * quotes.length)];
$rand.html(random_quote);
$rand.animate({"opacity" : 0}, 0);
$rand.animate({"opacity" : 1}, 500);
$rand.delay("9000");
$rand.animate({ "opacity" : 0 }, 500);
});
function randomQuote() {
var $rand = $('div#randomQuote > p');
var random_quote = quotes[Math.floor(Math.random() * quotes.length)];
$rand.html(random_quote);
$rand.animate({"opacity" : 1}, 500);
$rand.delay("9000");
$rand.animate ({"opacity" : 0}, 500);
}
$(function() {
setInterval(randomQuote, 10000);
});
私はこれらの行には計算に時間がかかり、ループが壊れているとは思えません。
var $rand = $('div#randomQuote > p');
var random_quote = quotes[Math.floor(Math.random() * quotes.length)];
Q:はどのように私は期待通りに働いて得るために、このコードを向上させることができますか?
ありがとうございます。
問題はあなたのコードではない可能性があります。ウィンドウがフォーカスされていない場合、ブラウザはスクリプト(したがってアニメーション)を実行しないことがよくあります。ウィンドウの 'blur'イベントですべてのアニメーションを停止し、' focus'でそれを再起動することを検討する必要があります。 – RoToRa
Codereviewは作業コードのレビュー用です。コードを動作させるための助けを得るためではありません。このような質問については、Stack Overflow(ここではこの質問を移動します)に行く必要があります。 – sepp2k