Javascript 如何使这个JS类型动画每三秒钟重复一次

Javascript 如何使这个JS类型动画每三秒钟重复一次,javascript,html,jquery,css,Javascript,Html,Jquery,Css,这里是JS+Babel输入动画,现在它从页面加载开始,我们可以从给定的按钮中删除并重新键入它,但是如果选中,我想每隔三秒钟重复(重新键入),我怎么做 我尝试了这个plz检查: 类文本动画{ 构造函数(文本,可选元素){ this.text=文本; this.curChar=0; this.inTimeout=0; this.outTimeout=0; this.domElement=opt_domElement | | this.createDomElement(); } createDome

这里是JS+Babel输入动画,现在它从页面加载开始,我们可以从给定的按钮中删除并重新键入它,但是如果选中,我想每隔三秒钟重复(重新键入),我怎么做

我尝试了这个plz检查:

类文本动画{
构造函数(文本,可选元素){
this.text=文本;
this.curChar=0;
this.inTimeout=0;
this.outTimeout=0;
this.domElement=opt_domElement | | this.createDomElement();
}
createDomeElement(){
常量elem=document.createElement('p');
elem.className='blink';
elem.innerHTML='';
文件.正文.附件(elem);
返回元素;
}
getDelay(char,isLastChar=false){
让delay=this.delay;
开关(字符){
案例“”:
延迟=3;
打破
案例',':
延迟=3;
打破
案例“”:
案例“!”:
案例“?”:
延迟=3;
打破
违约:
延迟=15;
}
if(isLastChar){
延迟=0;
}
返回延迟;
}
类型(回调){
这个.curChar++;
this.domeElement.innerHTML=this.text.substr(0,this.curChar);
if(this.curCharthis.type(回调),this.getDelay(prevChar,this.curChar===this.text.length));
}否则{
this.curChar=this.text.length;
回调();
返回;
}
//console.log('type',this.curChar);
}
擦除(回调){
这个.curChar--;
this.domeElement.innerHTML=this.text.substr(0,this.curChar);
如果(this.curChar>=0){
this.outTimeout=setTimeout(()=>this.erase(回调),10);
}否则{
this.curChar=0;
回调();
返回;
}
//console.log('erase',this.curChar);
}
stopCurrentAnimation(){
clearTimeout(this.inTimeout);
clearTimeout(this.outTimeout);
}
animateIn(回调=()=>{}){
这个.stopCurrentAnimation();
this.type(回调);
}
动画输出(回调=()=>{}){
这个.stopCurrentAnimation();
这个。擦除(回调);
}
}
console.clear();
const type=document.getElementById('type');
const erase=document.getElementById('erase');
const question=document.getElementById('qqq').innerHTML;
const foo=新文本动画(问题);
animateIn(()=>{console.log('autoplay done');});
type.addEventListener('click',()=>foo.animateIn(()=>{console.log('animation in done');}),false);
erase.addEventListener('click',()=>foo.animateOut(()=>{console.log('animation out done');}),false)
html,
身体{
宽度:100%;
身高:100%;
填充:20px;
保证金:0;
}
身体{
背景色:#000;
}
p{
显示:内联块;
字体系列:monospace;
字体大小:11px;
线高:11px;
最小高度:11px;
颜色:#fff;
-webkit字体平滑:抗锯齿;
-moz osx字体平滑:灰度;
保证金:0;
}
#qqq{显示:无}
.眨眼:之后{
内容:'';
位置:绝对位置;
排名:0;
右:-10px;
宽度:5px;
身高:100%;
背景色:#fff;
动画:闪烁0.8s线性无限;
}
@关键帧闪烁器{
50% {
不透明度:0;
}
}

类型
擦除
复选框:

这是输入内容,我想让它在每三秒钟,它应该从开始重新键入,如果检查按钮被选中/启用 任何HTML内容
类文本动画{
构造函数(文本,可选元素){
this.text=文本;
this.curChar=0;
this.inTimeout=0;
this.outTimeout=0;
this.domElement=opt_domElement | | this.createDomElement();
}
createDomeElement(){
常量elem=document.createElement('p');
elem.className='blink';
elem.innerHTML='';
文件.正文.附件(elem);
返回元素;
}
getDelay(char,isLastChar=false){
让delay=this.delay;
开关(字符){
案例“”:
延迟=3;
打破
案例',':
延迟=3;
打破
案例“”:
案例“!”:
案例“?”:
延迟=3;
打破
违约:
延迟=15;
}
if(isLastChar){
延迟=0;
}
返回延迟;
}
类型(回调){
这个.curChar++;
this.domeElement.innerHTML=this.text.substr(0,this.curChar);
if(this.curCharthis.type(回调),this.getDelay(prevChar,this.curChar===this.text.length));
}否则{
this.curChar=this.text.length;
回调();
返回;
}
//console.log('type',this.curChar);
}
擦除(回调){
这个.curChar--;
this.domeElement.innerHTML=this.text.substr(0,this.curChar);
如果(this.curChar>=0){
this.outTimeout=setTimeout(()=>this.erase(回调),10);
}否则{
this.curChar=0;