@Aqulus

Как реализовать анимацию «печатает...»?

Делаю через сокеты вывод людей, которые печатают.
Имеется такой код:
this.$target.html(this.typingUsers.join(', ') + ' is typing...');


Как можно анимировать точки? Искал в гугле, так как сам не силён в жс, но ничего не нашёл.
  • Вопрос задан
  • 196 просмотров
Решения вопроса 1
noder_ss
@noder_ss
Линуксоид-энтузиаст и SQL разработчик
Здраствуйте, получилось сделать вариант с transition-delay;
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div><p>Is typing <span class="dot1">.</span>
        <span class="dot2">.</span>
        <span class="dot3">.</span></p></div>
</body>
<style>
    @import url(https://fonts.googleapis.com/css?family=Montserrat:100,200,300,regular,500,600,700,800,900,100italic,200italic,300italic,italic,500italic,600italic,700italic,800italic,900italic);
    html{
        font-family: Montserrat;

    }
    .dot1{
        transition-delay: 0.1s;
        opacity: 0;
        transition-duration: 0.3s;
    }
    .active-dot1{
        opacity: 1;
        transition-delay: 0.1s;
        transition-duration: 0.3s;
    }
    .dot2{
        transition-delay: 0.2s;
        opacity: 0;
        transition-duration: 0.3s;
    }
    .active-dot2{
        transition-delay: 0.2s;
        opacity: 1;
        transition-duration: 0.3s;
    }
    .dot3{
        transition-delay: 0.3s;
        opacity: 0;
        transition-duration: 0.3s;
    }
    .active-dot3{
        transition-delay: 0.3s;
        opacity: 1;
        transition-duration: 0.3s;
    }
</style>
<script>
    let dot1 = document.querySelector(".dot1")
    let dot2 = document.querySelector(".dot2")
    let dot3 = document.querySelector(".dot3")
    setInterval(() => {
        dot1.classList.toggle("active-dot1")
    }, 500);
    setInterval(() => {
        dot2.classList.toggle("active-dot2")
    }, 500);
    setInterval(() => {
        dot3.classList.toggle("active-dot3")
    }, 500);
</script>
</html>

(Если слишком большая скорость анимации, увеличите длительность transition-durationи setInterval)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
UnluckySerivelha
@UnluckySerivelha
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
24 нояб. 2024, в 14:37
3000 руб./в час
24 нояб. 2024, в 13:04
500 руб./в час
24 нояб. 2024, в 12:29
3000 руб./за проект