
Digitalplus
VIP
Eta
Diseñador
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
Verificado por Binance
¡Usuario popular!
Suscripción a IA
Hola a todos este es el mismo código que el anterior pero en este caso le he cambiado la animación de carga para que se mire mejor, espero que sea de su agrado.
Demostración de la mejora
Importante: Otra vez el aviso del código anterior. El código puede que no se abra en una ventana emergente pero se activa un aviso del enlace
Espero que sea de su agrado 😁
Demostración de la mejora
HTML:
<button data-link="Tu-Link-Aqui" id="download-button" target="_blank">Descargar</button>
<div id="timer"></div>
<div class="loader"></div>
CSS:
#download-button {
display: block;
margin: 20px auto;
padding: 10px 20px;
border-radius: 5px;
background-color: #007bff;
color: #fff;
font-size: 18px;
cursor: pointer;
}
#timer {
text-align: center;
font-size: 24px;
margin-bottom: 10px;
}
.loader {
border: 8px solid #f3f3f3;
border-top: 8px solid #007bff;
border-radius: 50%;
width: 40px;
height: 40px;
animation: spin 1s linear infinite;
margin: 20px auto;
display: none;
}
@media screen and (max-width: 768px) {
#download-button {
font-size: 16px;
}
#timer {
font-size: 18px;
}
}
@keyframes spin {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
JavaScript:
const downloadBtn = document.getElementById('download-button');
const timer = document.getElementById('timer');
const loader = document.querySelector('.loader');
downloadBtn.addEventListener('click', function() {
downloadBtn.style.display = 'none';
timer.style.display = 'block';
loader.style.display = 'block';
let timeLeft = 20;
let downloadLink = downloadBtn.getAttribute('data-link');
let countdown = setInterval(function() {
timeLeft--;
timer.innerText = `La descarga comenzará en ${timeLeft} segundos...`;
if (timeLeft == 0) {
clearInterval(countdown);
// Abrir la ventana emergente
const newWindow = window.open(downloadLink, '_blank', 'height=500,width=500');
// Verificar si se abrió la ventana
if (newWindow !== null && typeof newWindow !== 'undefined') {
// Restaurar el botón de descarga y ocultar la animación de carga
downloadBtn.style.display = 'block';
timer.style.display = 'none';
loader.style.display = 'none';
} else {
// Mostrar un mensaje de error
alert('El navegador ha bloqueado la ventana emergente. Por favor, habilite las ventanas emergentes para este sitio web.');
// Restaurar el botón de descarga y ocultar la animación de carga
downloadBtn.style.display = 'block';
timer.style.display = 'none';
loader.style.display = 'none';
}
}
}, 1000);
});
Importante: Otra vez el aviso del código anterior. El código puede que no se abra en una ventana emergente pero se activa un aviso del enlace
Espero que sea de su agrado 😁