そのため、setintervals と clearintervals を使用して複数の関数を使用する必要がないようにスクリプトを単純化して、配列のようにさまざまな関数の束のように同時に実行できる関数を 1 つだけ持つようにして、ファイルがそれほど大きくないようにしています。スクリプトの動作例http://test.719records.com/test/test.html (ページは 1080P 以上で表示されるように作成されています) とスクリプト全体は http://test. 719records.com/test/jquery.solari.letters.js
これは、最終的に反復したいスクリプトの抜粋です。
//randomize name1 li:1 frames
//until correct character is landed on
var randlet = 0;
function randomizerlet1_1() {
randlet = Math.floor(Math.random() * 156);
timesletrun[0] += 1;
if (masterlet[randlet] == letter[0]) {
$('#flipL1_1').css('background-position', masterlet[randlet]);
clearInterval(intervallet1_1);
} else {
if (timesletrun[0] == 300) {
masterlet[randlet] = letter[0];
$('#flipL1_1').css('background-position', masterlet[randlet]);
clearInterval(intervallet1_1);
} else {
$('#flipL1_1').css('background-position', masterlet[randlet]);
}
}
}
var intervallet1_1 = setInterval(function() {
randomizerlet1_1();
}, 10);
シーケンスの 2 番目の文字は次のようになります。
//randomize name1 li:2 frames
//until correct character is landed on
function randomizerlet1_2() {
randlet = Math.floor(Math.random() * 156);
timesletrun[1] += 1;
if (masterlet[randlet] == letter[1]) {
$('#flipL1_2').css('background-position', masterlet[randlet]);
clearInterval(intervallet1_2);
} else {
if (timesletrun[1] == 300) {
masterlet[randlet] = letter[1];
$('#flipL1_2').css('background-position', masterlet[randlet]);
clearInterval(intervallet1_2);
} else {
$('#flipL1_2').css('background-position', masterlet[randlet]);
}
}
}
var intervallet1_2 = setInterval(function() {
randomizerlet1_2();
}, 10);
現在、これらは 1 行で合計 38 個実行されており、最終的には 28 個の行になります。申し訳ありませんが、私の知識は専門家レベルではありません。まだ学習中なので、これは簡単かもしれませんし、そうではないかもしれませんが、可能であれば、これらを 1 つの反復関数に単純化する必要があります。たぶん、多次元配列と関数引数を使用していますか? このコードがどのように見えるかはわかりません。
これを単純化できる場合は、そのためのチュートリアルを作成し、それを無料のサードパーティ プラグインにラップして、人々が自分の個人的なプロジェクトで使用できるようにします!