JSFiddle - React, Tailwind, and code Playground
HTML
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<div class="chatwrap">
<div class="chat"></div>
</div>
JavaScript
chat = {
loaded: false, //Флаг уже загруженного чата
timeout: 2000, //Время в секундах между выводами сообщений
counter: 0,
names: ['Елена', 'Василий', 'Игнат', 'Милана', 'Анатолий', 'Никита', 'Александр', 'Евгений', 'Виктория', 'Михаил', 'Александр', 'Ольга', 'Валентина', 'Людмила', 'Азмур', 'Владимир', 'Никита', 'Юлия', 'Ленуська', 'Марат', 'Артём', 'Нийяз', 'Фаиль', 'Елизавета', 'Тигран', 'Валерия'],
start: function() {
if (!chat.loaded) {
var container = $('.chat');
var wrapper = $('<div class="chatwrap"></div>');
wrapper.insertBefore(container);
wrapper.append(container);
$('.chat + .inputs input').on('keyup', function(e) {
if (e.keyCode == 13 || e.keyCode == 10)
chat.userPost();
});
$('.chat + .inputs button').on('click', function() {
chat.userPost();
})
}
chat.loaded = true;
chat.timer = setInterval(chat.post, chat.timeout);
},
post: function() {
if (arguments.length < 2) {
var userclass = '';
/*
var rnd = Math.round(Math.random() * chat.names.length - 1);
if (rnd > chat.names.length - 1 || rnd < 0)
rnd = chat.names.length - 1;
*/
if(chat.counter >= chat.names.length) {
chat.counter = 0;
}
var rnd = chat.counter;
chat.counter++;
var name = chat.names[rnd];
} else {
var userclass = ' userpost';
var name = arguments[0];
}
var newmsg = $('<div class="message' + userclass + '"><b>' + name + '</b></div>');
$('.chat').append(newmsg);
$('.chat')[0].scroll = $('.chat')[0].scrollTop = 9999;
},
userPost: function() {
var name = $('.chat + .inputs input:first-child');
if (!name.val().length) {
name.focus();
return;
}
chat.post(name.val(), text.val());
text.val('');
text.focus();
}
}
$(function() {
chat.start();
for (var t = 0; t < 6; t++)
chat.post();
});