-1
该代码旨在以打字方式动画某些文本。我希望它只运行一次,但它始终在句子区域循环。我将如何去阻止它循环。代码的顶部收集输入的值并放入数组,这一切都很好。这只是循环我有问题。这个Javascript函数保持循环,我怎样才能让它运行一次?
var yourWord = document.getElementById("myText").value;
var yourtext = "I took the word " + yourWord + "...";
var infomation = [yourtext,
'I looked at the most relevant news article relating to it...',
'And created this piece of art from the words in the article! '
],
part,
i = 0,
offset = 0,
pollyLen = Polly.length,
forwards = true,
skip_count = 0,
skip_delay = 5,
speed = 100;
var wordflick = function() {
setInterval(function() {
if (forwards) {
if (offset >= infomation[i].length) {
++skip_count;
if (skip_count == skip_delay) {
forwards = false;
skip_count = 0;
}
}
} else {
if (offset == 0) {
forwards = true;
i++;
offset = 0;
if (i >= pollyLen) {
i = 0;
}
}
}
part = infomation[i].substr(0, offset);
if (skip_count == 0) {
if (forwards) {
offset++;
} else {
offset--;
}
}
$('#pollyInfo').text(part);
}, speed);
};
$(document).ready(function() {
wordflick();
});
具体循环是什么?我的意思是,有setInterval,它重复,但这是它的重点。我没有看到任何其他循环。 –
如果你不想让它循环,不要使用'setInterval()'。只需执行一次代码,然后在您想要再次执行时调用该函数。 – Barmar
句子的数组保持循环。我想让它循环一遍,然后停下来。 –