Вообщем есть событие load, которое после полной загрузки страницы делает плавное opacity body,html с 0 до 1, вопрос в том что-бы сделать каждый клик по любой ссылке с такой-же задержкой для выполнения. То есть что-бы по клику переход осуществлялся не сразу, а после срабатывания opacity в обратном порядке с 1 до 0 и только потом переход
const onLoad = (e) => {
e.preventDefault();
setTimeout(() => window.location.replace(e.target.href), 1000)
}
<a href="/page" onClick="onLoad" />
План действий такой:
window.onload = function() {
var body = document.querySelector('body');
var links = document.querySelectorAll('a');
links.forEach(function (link) {
link.addEventListener('click', onLinkClicked);
function onLinkClicked(event) {
event.preventDefault();
body.classList.remove('animated-show-active')
setTimeout(onAnimationComplete, 2000);
}
function onAnimationComplete() {
window.location = link.href;
}
});
}
.animated-show {
opacity: 0;
transition: opacity 2s ease-out;
}
.animated-show.animated-show-active {
opacity: 1;
}
<body class="animated-show animated-show-active">
<a href="#">Click</a>
</body>
Виртуальный выделенный сервер (VDS) становится отличным выбором
Как добавить элементу <table> класс, через Javascript?
Как сделать градиент закругленного бордюра кнопки с прозрачным содержимым?