首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeIt.js:空容器afterComplete每个字符串

TypeIt.js:空容器afterComplete每个字符串
EN

Stack Overflow用户
提问于 2018-10-25 18:10:06
回答 1查看 272关注 0票数 1

你好,我开始使用TypeIt.js,但在字符串之间的转换方面遇到了问题。

我基本上想:

  • 类型第一字符串
  • 暂停几秒钟
  • 空,而不使用默认向后删除。
  • 键入下一个字符串

我更新了上一篇文章,因为我意识到这个版本有问题。下面的代码几乎可以工作,但只有在第二个字符串完成后才能工作。

如何在每个字符串之后运行空函数?我试图在第一个字符串之后不进行向后删除。

https://codepen.io/NewbCake/pen/pxqVWO

谢谢你的帮助。

JS

代码语言:javascript
复制
new TypeIt('#element', {
  strings: ['First string', 'Second string'],
  breakLines: false,
  speed: 100,
  cursor: false,
  loop: true,

  afterString: function(step, queue, instance) {
    instance.pause(1000).empty();
  },

})
EN

Stack Overflow用户

发布于 2020-02-10 16:45:47

您可以使用可链接实例方法来完成此操作,但是它们必须在初始化之前附加到主TypeIt实例。看起来会是这样的:

代码语言:javascript
复制
new TypeIt('#element', {
  breakLines: false,
  speed: 100,
  cursor: false,
  loop: true
})
  .type("First string.")
  .pause(1000)
  .empty()
  .type("Second string.")
  .pause(1000)
  .empty()
  .go();

工作示例:https://codepen.io/alexmacarthur/pen/MWwwJVO

您也可以使用afterString回调来完成这个任务,这个回调在v6.5.0中是异步的,但是代码有点奇怪。

代码语言:javascript
复制
new TypeIt('#element', {
  strings: ["First string.", "Second string."],
  breakLines: false,
  speed: 100,
  cursor: false,
  loop: true, 
  afterString: async (step, queue, instance) => {
    await new Promise((resolve) => {
      setTimeout(() => {
        instance.instances[0].$e.innerHTML = "";
        return resolve();
      }, 1000);
    });
  }
}).go();

希望这对一些人有帮助!

票数 -1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52995595

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档