Звук в чате.
Добрый день. Недавно начал увлекаться js. И тут возникла одна проблемка: есть чат, рабочий, но я не знаю, как сделать так, что бы при появлении нового сообщения в чате издавался звук.
Надеюсь на помощь.Заранее спасибо. (При желании , нужен еще checkbox, что бы включать/выключать данную возможность.) |
<button>Клик</button> <input type="checkbox" checked> <script> var chek = document.querySelector('input'); var audio = new Audio(['https://nvdx.ru/vega.mp3']); document.querySelector('button').onclick =()=> chek.checked && audio.play(); </script> |
Цитата:
//допустим , id чата #chatroom |
Riroy,
найдите функцию добаления сообщений и туда поставьте audio.play(); |
Цитата:
|
Rise, :lol:
Проaбгрейдим Цитата:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> .time{ margin-right: 10px; color: #999; } .mess{ color: #555; margin-left: 10px; } .name{ display: inline-block; width: 105px; } </style> </head> <body> <div id="chatroom"></div> <script> var room = document.querySelector('#chatroom'); var observer = new MutationObserver(function(mutations) { mutations.forEach(mutation=>{ var audio = new Audio('http://boobooka.com/wp-content/uploads/2016/09/ICQ_-_Zvuk_as_ki.mp3'); audio.play(); }); }); observer.observe(room, {childList: true}); //Эмулятор чата var rnd = (min, max) => Math.floor(Math.random() * (max - min)) + min; var chat = ['Приветики','Как делишки?','Вы все г***', 'Я тебя люблю!', 'Ты че братан попутал?', 'Как погодка?', 'ля-ля-ля ля-ля-ля'], nameUs = ['KiskaLove','100%Малышка','MafiaBoY', 'Spiker'], color = ['red','green','blue','cyan']; (mess=()=>{ var rn = rnd(0, nameUs.length); room.insertAdjacentHTML('beforeend', `<div><span class="time">${new Date().toLocaleString('ru', { hour: '2-digit', minute: '2-digit', second: '2-digit' })}</span> <span class="name" style="color:${color[rn]}">${nameUs[rn]}:</span> <span class="mess">${chat[rnd(0, chat.length)]}</span></div>`); setTimeout(mess,rnd(500,3000)); })(); </script> </body> </html> |
есть ли способ не создавать новое аудио каждый раз?
но чтобы при частом нажатии поведение было такое же? <button>Клик</button> <input type="checkbox" checked> <script> var chek = document.querySelector('input'); document.querySelector('button').onclick =()=> { var audio = new Audio('https://nvdx.ru/vega.mp3'); chek.checked && audio.play(); }; </script> |
Цитата:
<button>Клик</button> <input type="checkbox" checked> <script> var chek = document.querySelector('input'); document.querySelector('button').onclick =()=> { var audio = new Audio('https://nvdx.ru/vega.mp3'); chek.checked && audio.play(); }; </script> <button>Клик</button> <input type="checkbox" checked> <script> var chek = document.querySelector('input'); var audio = new Audio('https://nvdx.ru/vega.mp3'); document.querySelector('button').onclick =()=> { chek.checked && audio.play(); }; </script> |
Rise,
Спасибо! |
Часовой пояс GMT +3, время: 17:19. |