【发布时间】:2013-04-01 05:43:27
【问题描述】:
所以我试图简化我的脚本,不再需要使用带有 setintervals 和 clearintervals 的多个函数,而是只有一个可以同时运行的函数,就好像它是一堆不同的函数一样,比如一个数组,所以文件不是很大。以下是脚本的作用示例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);
这将是序列中的第二个字母:
//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 行。很抱歉,我的知识不是专家级的,我还在学习,所以这可能很容易,也可能不是,但如果可能的话,我需要将这些简化为一个迭代函数。也许使用多维数组和函数参数?我不确定这段代码会是什么样子。
如果这可以简化,我将为它创建一个教程,并将其包装成一个免费的 3rd 方插件,供人们在他们自己的个人项目中使用!
【问题讨论】:
-
Jättekul .... har vi blivit svenska ?
-
森纳尔!? BERÄTTA FÖR MIG!
-
这需要一种面向对象的方法。这是非常可行的,甚至应该使用一个简单的参数来创建页面本身,即您希望页面上有多少对象。我希望我在 OO 方面做得更好,因为我很可能只为以 x_y 结尾的每件事用数组编写代码
-
Jag är inte svensk ... 哈哈
-
这里是简化的masterlet jsfiddle.net/mplungjan/bAD4Y
标签: javascript jquery arrays function user-defined-functions