Глядя на этот код, я не уверен, что на самом деле должно сделать модальный видимым или скрыть его.Без доступа к вашему CSS (если у вас есть).Я предполагаю, что все, что вы делаете, это добавление и удаление класса .is-visible
из элемента #modal-container
.
Я бы посоветовал вам применить этот класс к самому модалу, а затем вы можете включать и выключать этот класс,
Измените свой код, сделав что-то подобное (добавлено вначало кода):
function showModal() {
var $modalContainer = document.querySelector('#modal-container');
$modalContainer.classList.add('is-visible');
document.querySelector('.modal').classList.remove('hide-el')
}
function hideModal() {
var $modalContainer = document.querySelector('#modal-container');
$modalContainer.classList.remove('is-visible');
document.querySelector('.modal').classList.add('hide-el')
}
Где hide-el
в вашем css:
.hide-el {
display: none;
}
Вы также можете изменить свой код, чтобы применить класс is-visible
к вашему modal
элемент.Вы всегда должны пытаться присоединить class / id к элементу, которым вы хотите манипулировать, если у вас есть эта опция.
Или если у вас нет доступа к файлу css:
document.querySelector('.modal').style.display = "none"
и
document.querySelector('.modal').style.display = "block"
Кроме того, ваш код кажется очень многословным, была ли эта стандартная часть задания?Вот рабочий пример: https://codepen.io/mujakovic/pen/zVJRKG