Вадим,
Я тогда по другому вопрос поставлю
Как мне выводить элемент с временем, которое будет означать отправку сообщения ?
Я сделал такую функцию timeMark https://iwyse.github.io/ChatBot/
Но выводится время только один раз.
вот весь скрипт чата
const showDate = document.getElementById("showDate");
const firstMessage = document.getElementById("firstMessage");
setTimeout(() => {
firstMessage.style.display = "flex";
showDate.style.display = "block";
}, 3000);
const printDate = document.getElementById("todayDate");
const spendTime = document.getElementById("spendTime");
function printDay(todayHours) {
if (todayHours >= 6 && todayHours < 12) {
return "утра";
} else if (todayHours >= 12 && todayHours < 18) {
return "дня";
} else if (todayHours >= 18 && todayHours <= 23) {
return "вечера";
} else {
return "ночи";
}
}
function spendMyTime(todayHours) {
if (todayHours >= 6 && todayHours < 12) {
return "утро";
} else if (todayHours >= 12 && todayHours < 18) {
return "день";
} else if (todayHours >= 18 && todayHours <= 23) {
return "вечер";
} else {
return "ночь";
}
}
//* вывод текущего времени (часы + минуты)
let todayDate = new Date();
let todayMinuts = (todayDate.getMinutes() < 10 ? "0" : "") + todayDate.getMinutes();
let todayHours = todayDate.getHours();
let todayDateNow = todayHours + ":" + todayMinuts + " " + printDay(todayHours);
printDate.innerHTML = todayDateNow;
spendTime.innerHTML = spendMyTime(todayHours);
//* Функционал чата
const chatWrapper = document.querySelector(".chat__wrapper");
const sendMessage = document.querySelector(".send-message");
let inputMessage = document.querySelector(".input-message");
sendMessage.addEventListener("click", function (e) {
if (inputMessage.value == 0) {
e.preventDefault();
}
chatWrapper.insertAdjacentHTML(
"beforeend",
'<div class="chat-user chat-body"><div class="chat-user__image"><img src="img/person2.png" alt=""></div><div class="chat-user__message chat-message"><p class="chat-user__text">' +
inputMessage.value +
'</p><div class="chat-user__time chat-time logtime like-counter"></div></div></div>'
);
timeMark();
presetLoading(); //* вызов эмуляции записи сообщения
setTimeout(() => {
let message;
if (inputMessage.value.toLowerCase() == "привет, смотрю сериал") {
message = `Здорово, я вот жду 3 сезон сериала "видеть"`;
}
else if (inputMessage.value.toLowerCase() == "как твои дела?") {
message = "Недавно ходили на море, тебе нравится море?";
}
else if (inputMessage.value.toLowerCase() == "нравится море, люблю плавать") {
message = "Вода щас очень теплая, людей правда много";
}
else if (inputMessage.value.toLowerCase() == "не фанат ходить на море") {
message = "А мне нравится";
}
else if (inputMessage.value.toLowerCase() == "что у тебя нового?") {
message = "Неделю назад приобрел машину";
}
else if (inputMessage.value.toLowerCase() == "что за машина?") {
message = "Toyota Soarer, люблю быстро ездить";
}
else if (inputMessage.value.toLowerCase() == "главное ездить с умом") {
message = "Обязательно";
}
else if (inputMessage.value == "") {
message = "Не вижу что написано";
}
else {
message = "Прости, появились срочные дела. До встречи!";
}
chatWrapper.insertAdjacentHTML(
"beforeend",
'<div class="chat-bot chat-body"><div class="chat-bot__image"><img src="img/person1.png" alt=""></div><div class="chat-bot__message chat-message"><p class="chat-bot__text">' +
message +
'</p><div class="chat-bot__time chat-time logtime"></div></div></div>'
);
}, 1500);
});
//* Эмуляция набора сообщения от собеседника
let loadingChat = document.createElement("div");
loadingChat.className = "chat-bot chat-body chat-loading";
loadingChat.innerHTML =
'<div class="chat-bot__image"><img src="img/person1.png" alt=""></div><div class="chat-bot__loading chat-message"><span class="loading loading-1"></span><span class="loading loading-2"></span><span class="loading loading-3"></span></div>';
function presetLoading() {
chatWrapper.append(loadingChat);
setTimeout(() => {
loadingChat.remove();
}, 1500);
}
//* Вывод временной точки
function timeMark() {
let logMessage = document.querySelector(".logtime");
let sendDate = new Date();
let sendMinuts = (sendDate.getMinutes() < 10 ? "0" : "") + sendDate.getMinutes();
let sendHours = sendDate.getHours();
let sendMessageDate = sendHours + ":" + sendMinuts;
logMessage.innerHTML = sendMessageDate;
}
timeMark();
Вадим, что тут непонятного
мне нужно чтобы отрисовывалось время, когда было отправлено сообщение
1 сообщение в 20:15
2 сообщение в 20: 22
и так далее
У меня выводит только первое сообщение и все
Просто вопрос стоит в том что многие темы ближе к концу, на learn.js не сразу понятны. Где отрабатывать эти пробелы ? Искать аналогичные темы на ютубе нормальный вариант ? вот async await прочитал, и не особо запомнил что, как. А на задания как в стенку смотрю
Добрый вечер, прохожу учебник learn.js уже на темах "Классы".
Подскажите, как отрабатывать все то что прочитал, написал. ЧТобы оно реально откладывалось в голове, а не тупо прочитал и пошел дальше. Некоторые задачи выполнялись крайне тяжело,а есть и такие что после прохождения главы вообще не смог выполнить. Как наработать практику в написании JS кода а не тупо все учить по курсам и ютубу?
В общем история такая,
Хотел переставить озу местами (отодвигал системник)
После этого вылетел экран смерти с жтой ошибкой
Перестаил обратно, не помогло
Экран смерти достиг такого состояния что система просто уже не запускалась.
Я грешил на Винду, снес ее :/
На новой винде тоже самое
По итогу проблема было в разьеме БП и из за него вся эта проблема.
А еще в бп какие то посторонние звуки наблюдаю переодически,как будто что то искрит, но там визуально все нормально
Что это может быть?
И материнка пищит так тихо непрерывно и противно(не ошибками)
Огромное спасибо, думал все в один слушатель получится сделать.
А как изменить число счетчика чтобы не с 1-2-3 начиналось например, а вначале был 0, то есть 01,02,03 и т.д?
Я тогда по другому вопрос поставлю
Как мне выводить элемент с временем, которое будет означать отправку сообщения ?
Я сделал такую функцию timeMark
https://iwyse.github.io/ChatBot/
Но выводится время только один раз.
вот весь скрипт чата