Затухание звука с использованием ванильного javascript
Как я могу скрыть аудиоэлемент с помощью vanilla js (без jquery)? Я просмотрел множество других вопросов на этом форуме, но все они кажутся слишком сложными или используют jquery. Я написал этот код ниже. Однако я получаю следующую ошибку: «Неперехваченное исключение DOMException: не удалось установить свойство« volume »в« HTMLMediaElement »: предоставленный объем (-7.52870e-16) выходит за пределы диапазона [0, 1]».
viewer.on('mouseup', function(event) {
var mouseDownSound = document.getElementById("mouseDownSound");
mouseDownSound.volume = 1;
var vol = mouseDownSound.volume;
function fadeOut() {
setInterval(
function() {
if (vol > 0) {
vol -= 0.01;
mouseDownSound.volume = vol;
}
else {
clearInterval(fadeOut);
}
}, 2);
}
fadeOut();
});
1 ответ
Скажем, в настоящее время имеет значение 0,005. То, как ваш код в настоящее время настроен,
if (vol > 0)
является
true
, поэтому вы вычтете 0,01, получив значение -0,005. Поскольку теперь это значение меньше нуля, вы получите сообщение об ошибке при попытке установить громкость на этот уровень.
Исправление - позвонить
vol -= 0.01
перед тестом
if(vol > 0)
. Таким образом, если
vol
упадет ниже 0, вы не будете пытаться установить недопустимый уровень громкости.