简体   繁体   中英

How to achieve this typing & deleting effect?

I'd like to replicate this website's typing & deleting effect: http://www.cantercompanies.com .

I've been trying to figure this out using code blocks, HTML, CSS, and JS. However, I can't seem to get this to work after hours and days of trying.

It's obviously on my end, as I am fairly new to coding.

I really want this exact typing & deleting effect with blinking cursor. I of course will be using my own logo and fixed text, but need some guidance and help to replicate Canter's example above in the link provided… :-)

You don't need any library,

HTML

  <div class="flex">
    <p class="header-sub-title" id="word"></p><p class="header-sub-title blink">|</p>
</div>

CSS

@import 'https://fonts.googleapis.com/css?family=Roboto';
html, body {
    background-color: #000;
}
h2, a, p {
    color: #fff;
    font-family: Roboto;
    text-decoration: none;
}
p>a {
    color: #fd084a;
}
.blink {
  animation: blink 0.5s infinite;
}
@keyframes blink{
  to { opacity: .0; }
}
.flex {
    display: flex;
}
.header-sub-title {
  color: #fff;
  font-family: "Courier";
  font-size: 20px;
  padding: 0.1em;
}

JS

const words = ["CSS3.", "HTML5.", "javascript."];
let i = 0;
let timer;

function typingEffect() {
    let word = words[i].split("");
    var loopTyping = function() {
        if (word.length > 0) {
            document.getElementById('word').innerHTML += word.shift();
        } else {
            deletingEffect();
            return false;
        };
        timer = setTimeout(loopTyping, 500);
    };
    loopTyping();
};

function deletingEffect() {
    let word = words[i].split("");
    var loopDeleting = function() {
        if (word.length > 0) {
            word.pop();
            document.getElementById('word').innerHTML = word.join("");
        } else {
            if (words.length > (i + 1)) {
                i++;
            } else {
                i = 0;
            };
            typingEffect();
            return false;
        };
        timer = setTimeout(loopDeleting, 200);
    };
    loopDeleting();
};

typingEffect();

Reference : https://codepen.io/haaswill/pen/VKzXvZ

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM