@Aqulus

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

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


Как можно анимировать точки? Искал в гугле, так как сам не силён в жс, но ничего не нашёл.
  • Вопрос задан
  • 143 просмотра
Решения вопроса 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
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 03:52
1000 руб./за проект
19 апр. 2024, в 03:01
1000 руб./за проект
18 апр. 2024, в 21:56
2000 руб./за проект