Javascript 如何自动重复键入文本
我正在尝试生成一个javascript/jquery代码,在该代码中它会自动键入一个字符串,然后在字符串完全键入后,清除先前键入的字符串并再次键入。目前,我的代码只需键入一次字符串。我知道如何继续循环,但它只是从停止的地方开始键入,并没有清除字符串。Javascript:Javascript 如何自动重复键入文本,javascript,jquery,loops,text,input,Javascript,Jquery,Loops,Text,Input,我正在尝试生成一个javascript/jquery代码,在该代码中它会自动键入一个字符串,然后在字符串完全键入后,清除先前键入的字符串并再次键入。目前,我的代码只需键入一次字符串。我知道如何继续循环,但它只是从停止的地方开始键入,并没有清除字符串。Javascript: var txt='Typing text...'.split(''); var delay=850; for ( i=0; i<txt.length;i++){ setTimeout(function(){
var txt='Typing text...'.split('');
var delay=850;
for ( i=0; i<txt.length;i++){
setTimeout(function(){
$('.autoText').append(txt.shift() )
}, delay * i)
}
var txt='Typing text…'.split('');
无功延迟=850;
对于(i=0;i,这里是OOP解决方案,使用对象文字方式。还使用可以更改延迟的方法。将来,您可以添加更多方法,如使用setters方法更改字符串大小写或更改动画效果。您可以使用任何字符串将其附加到任何元素。
此外,它不像jQuery那样具有依赖关系。如果您不希望依赖jQuery或内部文档就绪func,并且您具有依赖关系,则必须将此代码放在DOM的底部。
希望对你有帮助
var animText = {
animStr: '',
delay: 300,
setDelay: function(delay) {
this.delay = delay;
},
DoAnimation: function(string, selector) {
this.animStr = string.split('');
for (var i = 0; i <= string.length-1; i++) {
setTimeout(function () {
document.getElementById(selector).innerHTML += animText.animStr.shift();
},this.delay * i);
};
setTimeout( function() {
document.getElementById(selector).innerHTML = '';
animText.DoAnimation(string, selector);
}, this.delay * i + 1200)
}
}
animText.DoAnimation("Hello", "animStr");
animText.setDelay(900);
var animText={
animStr:“,
延误:300,
设置延迟:功能(延迟){
延迟=延迟;
},
DoAnimation:函数(字符串、选择器){
this.animStr=string.split(“”);
对于(var i=0;i,这里是OOP解决方案,使用对象文字方式。还使用可以更改延迟的方法。将来,您可以添加更多方法,如使用setters方法更改字符串大小写或更改动画效果。您可以使用任何字符串将其附加到任何元素。
此外,它不像jQuery那样具有依赖关系。如果您不希望依赖jQuery或内部文档就绪func,并且您具有依赖关系,则必须将此代码放在DOM的底部。
希望对你有帮助
var animText = {
animStr: '',
delay: 300,
setDelay: function(delay) {
this.delay = delay;
},
DoAnimation: function(string, selector) {
this.animStr = string.split('');
for (var i = 0; i <= string.length-1; i++) {
setTimeout(function () {
document.getElementById(selector).innerHTML += animText.animStr.shift();
},this.delay * i);
};
setTimeout( function() {
document.getElementById(selector).innerHTML = '';
animText.DoAnimation(string, selector);
}, this.delay * i + 1200)
}
}
animText.DoAnimation("Hello", "animStr");
animText.setDelay(900);
var animText={
animStr:“,
延误:300,
设置延迟:功能(延迟){
延迟=延迟;
},
DoAnimation:函数(字符串、选择器){
this.animStr=string.split(“”);
对于(var i=0;i,这里是OOP解决方案,使用对象文字方式。还使用可以更改延迟的方法。将来,您可以添加更多方法,如使用setters方法更改字符串大小写或更改动画效果。您可以使用任何字符串将其附加到任何元素。
此外,它不像jQuery那样具有依赖关系。如果您不希望依赖jQuery或内部文档就绪func,并且您具有依赖关系,则必须将此代码放在DOM的底部。
希望对你有帮助
var animText = {
animStr: '',
delay: 300,
setDelay: function(delay) {
this.delay = delay;
},
DoAnimation: function(string, selector) {
this.animStr = string.split('');
for (var i = 0; i <= string.length-1; i++) {
setTimeout(function () {
document.getElementById(selector).innerHTML += animText.animStr.shift();
},this.delay * i);
};
setTimeout( function() {
document.getElementById(selector).innerHTML = '';
animText.DoAnimation(string, selector);
}, this.delay * i + 1200)
}
}
animText.DoAnimation("Hello", "animStr");
animText.setDelay(900);
var animText={
animStr:“,
延误:300,
设置延迟:功能(延迟){
延迟=延迟;
},
DoAnimation:函数(字符串、选择器){
this.animStr=string.split(“”);
对于(var i=0;i,这里是OOP解决方案,使用对象文字方式。还使用可以更改延迟的方法。将来,您可以添加更多方法,如使用setters方法更改字符串大小写或更改动画效果。您可以使用任何字符串将其附加到任何元素。
此外,它不像jQuery那样具有依赖关系。如果您不希望依赖jQuery或内部文档就绪func,并且您具有依赖关系,则必须将此代码放在DOM的底部。
希望对你有帮助
var animText = {
animStr: '',
delay: 300,
setDelay: function(delay) {
this.delay = delay;
},
DoAnimation: function(string, selector) {
this.animStr = string.split('');
for (var i = 0; i <= string.length-1; i++) {
setTimeout(function () {
document.getElementById(selector).innerHTML += animText.animStr.shift();
},this.delay * i);
};
setTimeout( function() {
document.getElementById(selector).innerHTML = '';
animText.DoAnimation(string, selector);
}, this.delay * i + 1200)
}
}
animText.DoAnimation("Hello", "animStr");
animText.setDelay(900);
var animText={
animStr:“,
延误:300,
设置延迟:功能(延迟){
延迟=延迟;
},
DoAnimation:函数(字符串、选择器){
this.animStr=string.split(“”);
对于(var i=0;i这是您想要的吗
var txt = 'Typing text...'.split('');
var delay = 850;
function type() {
for (i = 0; i < txt.length; i++) {
setTimeout(function () {
$('.autoText').append(txt.shift());
}, delay * i);
}
// delay * i + 1000 means 1 second after the above text was finished typing
setTimeout(function(){
// after finish, clear text in h1 element
$('.autoText').text('');
// fire `type` method again, with `txt` reset to its original value
type(txt = 'Typing text...'.split(''));
}, delay * i + 1000);
}
type(); // call type at least once
var-txt='typingtext…'。拆分('');
无功延迟=850;
函数类型(){
对于(i=0;i
这就是你想要的吗
var txt = 'Typing text...'.split('');
var delay = 850;
function type() {
for (i = 0; i < txt.length; i++) {
setTimeout(function () {
$('.autoText').append(txt.shift());
}, delay * i);
}
// delay * i + 1000 means 1 second after the above text was finished typing
setTimeout(function(){
// after finish, clear text in h1 element
$('.autoText').text('');
// fire `type` method again, with `txt` reset to its original value
type(txt = 'Typing text...'.split(''));
}, delay * i + 1000);
}
type(); // call type at least once
var-txt='typingtext…'。拆分('');
无功延迟=850;
函数类型(){
对于(i=0;i
这就是你想要的吗
var txt = 'Typing text...'.split('');
var delay = 850;
function type() {
for (i = 0; i < txt.length; i++) {
setTimeout(function () {
$('.autoText').append(txt.shift());
}, delay * i);
}
// delay * i + 1000 means 1 second after the above text was finished typing
setTimeout(function(){
// after finish, clear text in h1 element
$('.autoText').text('');
// fire `type` method again, with `txt` reset to its original value
type(txt = 'Typing text...'.split(''));
}, delay * i + 1000);
}
type(); // call type at least once
var-txt='typingtext…'。拆分('');
无功延迟=850;
函数类型(){
对于(i=0;i
这就是你想要的吗
var txt = 'Typing text...'.split('');
var delay = 850;
function type() {
for (i = 0; i < txt.length; i++) {
setTimeout(function () {
$('.autoText').append(txt.shift());
}, delay * i);
}
// delay * i + 1000 means 1 second after the above text was finished typing
setTimeout(function(){
// after finish, clear text in h1 element
$('.autoText').text('');
// fire `type` method again, with `txt` reset to its original value
type(txt = 'Typing text...'.split(''));
}, delay * i + 1000);
}
type(); // call type at least once
var-txt='typingtext…'。拆分('');
无功延迟=850;
函数类型(){
对于(i=0;ifunction timeoutLoop(fn, freq, callback) {
function looper() {
var ret = fn();
if (ret !== false && ret !== null && ret !== undefined)
return window.setTimeout(looper, freq);
if (callback)
callback();
}
window.setTimeout(looper, freq)
}
function type(node, str, freq) {
var s = stringGenerator(str),
f = function () {
var chr = s();
if (chr === null)
return false;
if (node.lastChild.nodeType === 3)
node.lastChild.data += chr;
else
node.appendChild(document.createTextNode(chr));
return true;
};
timeoutLoop(f, freq);
}
type(document.body, 'Hello world!', 500);
function repeatEternal(str, time){
time = time*1000 || 200;
var position = 0
,rdiv = document.querySelector('#repeater')
,l2r = true;
return eternal(str);
function eternal(s){
rdiv.textContent = l2r ? rdiv.textContent + s[0] : s.slice(0, -1);
l2r = s.length === 1 ? !l2r : l2r;
s = s.length < 2 ? str : !l2r ? s.slice(0,-1) : s.slice(1);
setTimeout( function(){ eternal(s); }, time);
}
}
// usage
repeatEternal('Typing galore!', 0.3);