首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在不破坏字的情况下用vue-typer来打破线?

如何在不破坏字的情况下用vue-typer来打破线?
EN

Stack Overflow用户
提问于 2020-08-04 23:17:57
回答 2查看 367关注 0票数 2

我正在和vue-typer一起工作,它会根据空间在屏幕上进行调整。但是,根据屏幕的大小,vue-typer会破坏这个单词。我想在我们有后座的时候休息一下。守则是:

代码语言:javascript
复制
        <vue-typer 
           class="text-h4 font-weight-bold" 
           text="Nós acreditamos que o futuro pode ser incrível. Quer criar 
           ele com a gente?" :repeat='0'
        ></vue-typer><br>

下面是现在工作情况的图像。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-02-24 00:06:38

我不知道是否有人还在处理这个问题,我已经对这个问题写了一个快速的解决办法。它不是完美的,但它做的工作。

您将通过一个自动添加换行符的方法来运行文本。

代码语言:javascript
复制
           <div
              style="
                font-size: 30pt;
                margin: auto;
                color: white;
                max-width: 600px;
              "
              ref="theRef"
            >
              <vue-typer
                v-if="startTypers"
                :text="[
                  formatText(
                    'TextHere',
                    'theRef',
                    22
                  ),
                ]"
                :repeat="0"
                :shuffle="false"
                initial-action="typing"
                :pre-type-delay="70"
                :type-delay="70"
                :pre-erase-delay="2000"
                :erase-delay="100"
                erase-style="backspace"
                :erase-on-complete="false"
                caret-animation="blink"
              ></vue-typer>
            </div>
代码语言:javascript
复制
mounted() {
      setTimeout(() => {
        this.startTypers = true;
      }, 150);
    }

创建startTypers的原因是,它们将在呈现div之前运行formatText方法。这意味着您将无法获得父div的clientWidth。

代码语言:javascript
复制
formatText(text, ref, textSize = 22) {
        let maxChars = Math.floor(this.$refs[ref].clientWidth / textSize);
        let words = text.split(" ");
        let breaked = "";
        let currentCount = 0;
        words.forEach((word) => {
          currentCount += word.length;
          currentCount += 1;
          if (currentCount >= maxChars) {
            currentCount = word.length;
            breaked = `${breaked}\n${word} `;
          } else {
            breaked = `${breaked}${word} `;
          }
        });
        return breaked;
      },

formatText的参数是您希望添加换行符的文本、引用的名称和呈现的span的大小(22是我在用例中使用的字体和字体大小的默认值,您的字体和字体大小会有所不同)。

希望这能帮上忙

票数 1
EN

Stack Overflow用户

发布于 2020-12-08 18:05:14

为了将文本分解成块,请考虑以下几点

代码语言:javascript
复制
data() {
    text : 'Hello World! I`m clarification masterjam!',
},
computed : {
    textComputed() {
        let n = "\n"
        let breaked = this.text.match(/.{1,25}/g);
        breaked[0];
        var pos = breaked[0].lastIndexOf(' ');
        breaked[0] = breaked[0].substring(0,pos)+n+breaked[0].substring(pos+1);

        return breaked.join('')
    },
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63256312

复制
相关文章

相似问题

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