Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用anime js创建具有TypeWriter效果的文本动画?_Javascript_Html_Jquery_Css_Anime.js - Fatal编程技术网

Javascript 如何使用anime js创建具有TypeWriter效果的文本动画?

Javascript 如何使用anime js创建具有TypeWriter效果的文本动画?,javascript,html,jquery,css,anime.js,Javascript,Html,Jquery,Css,Anime.js,大家好,我正在尝试用创建不同的动画,现在我想用anime.js创建具有打字机效果的文本动画,就像这里的一样 这是我到目前为止所拥有的 HTML: 这里是js var element = document.getElementsByClassName("text-animation")[0]; element.innerHTML = element.textContent.replace(/\S/g,'<span class="letter">$

大家好,我正在尝试用创建不同的动画,现在我想用anime.js创建具有打字机效果的文本动画,就像这里的一样

这是我到目前为止所拥有的

HTML:

这里是js

var element = document.getElementsByClassName("text-animation")[0];
element.innerHTML = element.textContent.replace(/\S/g,'<span class="letter">$&</span>');
anime.timeline({loop:true})
.add({
  targets:'.text-animation .letter',
  scale:[3,1],
  opacity:[0,1],
  translateZ:0,
  duration:1000,
  easing:"easeOutExpo",
  delay:(elem, index) => index*70
})
.add({
  targets:'.text-animation',
  opacity:0,
  duration:1000,
  delay:1000,
  easing:"easeOutExpo"
})
var element=document.getElementsByClassName(“文本动画”)[0];
element.innerHTML=element.textContent.replace(/\S/g,'$&');
动画。时间线({loop:true})
.添加({
目标:'.text动画.字母',
比例尺:[3,1],
不透明度:[0,1],
翻译Z:0,
持续时间:1000,
放松:“easeOutExpo”,
延迟:(元素,索引)=>索引*70
})
.添加({
目标:'.text动画',
不透明度:0,
持续时间:1000,
延误:1000,
放松:“easeOutExpo”
})
这是我的密码笔:


根据我上面提供的示例,我需要添加哪些内容才能得到我想要的结果?

此键入动画最难的部分是光标偏移量计算,这可以通过对单词的每个字母使用和的组合轻松完成

const-element=document.querySelector('.text-animation');
const lettersHtml=element.textContent.replace(/\S/g,$&');
element.innerHTML=`${lettersHtml}`;
element.style.display='block';
常量字母=数组.from(element.querySelectorAll('.letter');
const TYPE_在_MS之后=3_000;
常数在MS=250之后跳转;
常数闪烁=动画({
目标:'.text animation.cursor',
循环:对,
持续时间:750,
不透明度:[
{value:[1,1]},
{值:[0,0]}
],
});
动画。时间线({loop:true})
.添加({
目标:'.text animation.cursor',
translateX:letters.map((字母,i)=>
({value:letter.offsetLeft+letter.offsetWidth,持续时间:1,延迟:i==0?0:JUMP\u AFTER\u MS}))
},在_MS后键入_)
.添加({
目标:'.text动画.字母',
不透明度:[0,1],
持续时间:1,
延迟:动画。错开(一个接一个地跳),
changeBegin:()=>{
blink.reset();
眨眼。暂停();
},
更改完成:()=>{
blink.restart();
}
},在_MS后键入_)
.添加({
目标:'.text动画',
不透明度:0,
持续时间:1000,
延误:500,
放松:“easeOutExpo”,
});
正文{
保证金:0;
高度:100vh;
显示器:flex;
对齐项目:居中;
证明内容:中心;
背景:#222;
}
.文字动画{
显示:无;
位置:相对位置;
颜色:#F5;
字体大小:50px;
字体系列:“激情一号”,无衬线;
字母间距:1px;
线高:1;
}
.文字动画.字母{
显示:内联块;
不透明度:0;
}
.光标{
位置:绝对位置;
排名:0;
底部:0;
宽度:3倍;
背景:#f5;
z指数:1;
}

欢迎来到codingflag
我建议您使用..,因为它非常容易使用…下面是一个使用

这是我的例子

var typed=新类型(“#text”{
字符串:[“第一个字符串..!”,“第二个字符串..!”,“第三个字符串..!”,“第三个单词..!”,
打字速度:120,
后退速度:80,
循环:正确
});
正文{
填充:0;
保证金:0;
框大小:边框框;
}
.集装箱{
背景图像:线性渐变(至右上方,#051937,#004d7a,#008793,#00bf72,#a8eb12);
宽度:100vw;
高度:100vh;
显示器:flex;
对齐项目:居中;
证明内容:中心;
}
氢{
文本对齐:居中;
颜色:白色;
}


那么您的意思是不想放大,还需要光标吗?是吗?呵呵,我只是想要这样的东西,但是在anime.js中你可以尝试修改这个:谢谢兄弟,效果很好,有没有关于anime js中文本显示动画的演示?如果是,你能提供一个吗?以下是我的帖子:
body {
  margin:0px;
  height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#222;
}
.text-animation {
  color:#f5f5f5;
  font-size:50px;
  font-family:"Passion One",sans-serif;
  letter-spacing:1px;
}
.text-animation .letter {
  display:inline-block;
}
var element = document.getElementsByClassName("text-animation")[0];
element.innerHTML = element.textContent.replace(/\S/g,'<span class="letter">$&</span>');
anime.timeline({loop:true})
.add({
  targets:'.text-animation .letter',
  scale:[3,1],
  opacity:[0,1],
  translateZ:0,
  duration:1000,
  easing:"easeOutExpo",
  delay:(elem, index) => index*70
})
.add({
  targets:'.text-animation',
  opacity:0,
  duration:1000,
  delay:1000,
  easing:"easeOutExpo"
})