卡住数字和字母随机化javascript
Stuck on number and letter randomization javascript
所以我被困在这个脚本上,我很难弄清楚如何完成它。我需要它改变new_string为旧字符串后,它完成了它的动画,然后与setInterval
1或2分钟后运行相同的动画从新的旧字符串到一个新的字符串,我将从JSON抓取。脚本如下:
$(document).ready(function () {
var old_string = "first word";
var new_string = "second word";
while (old_string.length < new_string.length) {
old_string += " ";
}
while (new_string.length < old_string.length) {
new_string += " ";
}
for (i = 0; i < 18; i++) {
var cell_id = create_cell();
cycle_characters(old_string.charCodeAt(i), new_string.charCodeAt(i), cell_id);
}
});
var create_cell = function() {
var $rack = $("#rack");
var cell_id = "cell_" + $("#rack .cell").size() + 1;
$rack.append($("<span class='cell first_run'>").attr("id", cell_id));
return cell_id;
}
var cycle_characters = function (old, newer, cell_id) {
// 32 = space; 126 = tilde
// low-range ASCII only
var lower_limit = 32;
var upper_limit = 126;
var old = parseInt(old);
var newer = parseInt(newer);
if (old > upper_limit || old < lower_limit) {
old = lower_limit;
}
if (newer > upper_limit || newer < lower_limit) {
newer = lower_limit;
}
if ("string" != typeof cell_id) {
cell_id = $(cell_id).attr("id");
}
var $cell = $("#" + cell_id);
$cell.text(String.fromCharCode(old));
if (newer != old) {
var call = "cycle_characters(" + (old + 1) + ", " + newer + ", " + cell_id + ")";
if ($cell.hasClass("first_run")) {
$cell.removeClass("first_run");
setTimeout(call, 1000);
} else {
setTimeout(call, 20);
}
}
}
这里也是一个JsFiddle
这里是一个更新的例子,可能是你想要的:
http://jsfiddle.net/ktEJy/2/注意,setNewWord
函数显然需要从其他来源提取下一个单词,而不是像我这样从数组中提取随机单词。
对于子孙后代,下面是代码:
$(document).ready(function () {
var old_string = "First Word";
var new_string = "Second Word";
function doTheDo() {
$('#rack').html("");
while (old_string.length < new_string.length) {
old_string += " ";
}
while (new_string.length < old_string.length) {
new_string += " ";
}
for (i = 0; i < new_string.length; i++) {
var cell_id = create_cell();
cycle_characters(old_string.charCodeAt(i), new_string.charCodeAt(i), cell_id);
}
}
function setNewWord() {
// grab the word from some json
words = ['Abracadabra', 'Foo bar baz splat', 'Bingo Dingo Ringo']
new_string = words[Math.floor(Math.random() * words.length)]
doTheDo();
}
function create_cell() {
var $rack = $("#rack");
var cell_id = "cell_" + $("#rack .cell").size() + 1;
$rack.append($("<span class='cell first_run'>").attr("id", cell_id));
return cell_id;
}
function cycle_characters(old, newer, cell_id) {
// 32 = space; 126 = tilde
// low-range ASCII only
var lower_limit = 32;
var upper_limit = 126;
var old = parseInt(old);
var newer = parseInt(newer);
if (old > upper_limit || old < lower_limit) {
old = lower_limit;
}
if (newer > upper_limit || newer < lower_limit) {
newer = lower_limit;
}
if ("string" != typeof cell_id) {
cell_id = $(cell_id).attr("id");
}
var $cell = $("#" + cell_id);
$cell.text(String.fromCharCode(old));
var current = '';
$('.cell').each(function (el, i) {
current += $(i).text(); //console.info(i);
});
if (current != new_string && newer != old) {
if ($cell.hasClass("first_run")) {
$cell.removeClass("first_run");
setTimeout(function() {cycle_characters(old+1, newer, cell_id);}, 1000);
} else {
setTimeout(function() {cycle_characters(old+1, newer, cell_id);}, 20);
}
} else if (current == new_string) {
old_string = new_string;
setTimeout(function() { setNewWord();}, 3000);
}
}
doTheDo();
});
相关文章:
- 使用Javascript对RGBA颜色进行光标控制的形状随机化
- 如何使用JavaScript随机化有序列表
- 使用JavaScript随机化html标记
- 如果语句是假的 JavaScript,则再次随机化数字
- Javascript:通过在while循环内推送/拼接来随机化数组
- 在 JavaScript 中随机化(洗牌)带有对象的数组
- (Javascript)如何随机化图像的 2D 数组
- 使用 JavaScript 在背景中随机化图像
- 以相同的方式随机化两个数组,javascript
- 无限制地随机化数组,然后在 Javascript 中将其平均拆分
- Javascript-随机化Prim's算法问题随机化Prim's算法
- 使用javascript/jquery随机化CSS3动画时间
- javascript颜色随机化器不起作用
- 这里有一些用于随机化数组的javascript.有人可以一点一点地解释它是如何工作的
- 如何在Javascript中创建url随机化器
- Javascript |如何在随机化数组后保存顺序
- 我如何在jquery/javascript中随机化两组元素的顺序,使它们与每个顺序保持同步
- 卡住数字和字母随机化javascript
- 在HTML5 Canvas中随机化RGB,使用Javascript为每个fillRect设置一个新值
- javascript中的图像随机化器