Pada kesempatan ini saya akan membahas dan sama-sama belajar bagaimana membuat Typewriter menggunakan VueJs. Typewriter sendiri seperti kita melakukan pengetikan kata atau kalimat menggunakan keyboard. Nah kalau dalam HTML menggunakan tag <marquee> seperti text yang berjalan.Baiklah langsung saja mari kita mulai membuatnya, yuk simak langkah-langkah berikut:

Sahabat buat file HTML yang berisi seperti dibawah ini:

<!doctype html>
<html lang="en">
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">
    <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.6.10/vue.js"></script>
    <title>Membuat Typewrite Dengan VueJs</title>
  </head>

code diatas untuk bagian head, selanjutnya bagian isi body

<body>
    <div class="container mt-5 h-20">
      <div class="row">
        <div class="col-md-6 offset-md-3 bg-info p-5">
        <div id="app">
          <div class="text-white font-weight-bold">
            {{isiContent}}
          </div>
        </div>        
        </div>
      </div> 
    </div>

Pada code diatas saya menggunakan struktur Bootstrap supaya terlihat rapih dan mudah menggunakannya. baiklah jangan lupa dalam menambahkan script yang harus sahabat ketikkan dibawah ini:

<script>
      new Vue({
          data(){
            return{
              curWordIndex: 0,
              curTextLen: 1,
              isiContent: "",
              timeToWait: 100,
              words: [
                'Vue js adalah salah satu framework Javascript, Vue Js merupakan framework untuk kebutuhan front end dari sebuah project'
              ]     
            }
          },
          methods: {
            splitText() {
              var _this = this;
              var isi = this.words[this.curWordIndex];
              this.isiContent =
                " " +
                isi.
              split("").
              slice(0, this.curTextLen).
              join("");
              if (this.curTextLen === isi.length) {
                this.curTextLen = 0;
                if (this.curWordIndex === this.words.length - 1) this.curWordIndex = 0;else
                  ++this.curWordIndex;
                this.timeToWait = 500;
              } else {
                ++this.curTextLen;
                this.timeToWait = 50;
              }
              setTimeout(function (_) {return _this.splitText();}, this.timeToWait);
            } 
          },
          
          mounted() {
            var _this2 = this;
            setTimeout(function (_) {return _this2.splitText();}, 200);
          } 
        }).$mount('#app');
    </script>

Dalam code diatas untuk menampilkan data yang nanti akan ditampilkan pada expression {{isiContent}}, lalu mengatur index mulai karakter yang akan tampil.

Selanjutnya simpan yang sudah diketikkan lalu jalankan pada browser masing-masing dan lihat hasilnya.

Saya kira cukup dalam pembahasan artikel kali ini semoga bermanfaat dan sampai jumpa.

terima kasih