Вы можете использовать свойства transition
и opacity
CSS.
Сначала определите на своей странице следующее CSS:
body { transition: opacity 400ms }
Это гарантирует, что если вы изменяете opacity
тела, оно будет иметь эффект затухания.
Прослушивая событие transitionend
, вы можете выполнить ожидаемое навигационное действие после завершения перехода.
Наконец, делегирование события может быть сделано путем добавления проверки класса внутри обработчика события: если событие не произошло в элементе класса «link-fade», просто выйдите из обработчика:
document.addEventListener('click', function (event) {
if (!event.target.classList.contains("link-fade")) return;
event.preventDefault();
var link = event.target;
document.body.style.opacity = 0;
document.body.addEventListener("transitionend", function () {
location.href = link.href;
});
});
NB: this
в обработчике событий будет document
. Элемент, по которому щелкнули, - event.target
.