B
blankito1998
Beta
Usuário com poucas negociações! Use sempre o saldo do ForoBeta!
lo que quiero es que cuando haga click sobre otro boton no se pase al siguiente por los siguientes 5s?Si el conteo de 5 segundos no se reinicia al hacer clic en otro botón, puede ser que la funciónstartInterval()no se esté llamando correctamente. Asegúrate de que el evento de clic esté bien asignado y que no haya errores en la consola que puedan estar afectando la ejecución.
### Verifica lo Siguiente:
1. Asegúrate de questartInterval()se llama en el evento de clic:
Asegúrate de que cada vez que hagas clic en un botón, se llama astartInterval()como se muestra en el código anterior.
2. Revisa la consola del navegador por errores:
Abre la consola del navegador (generalmente F12 o clic derecho > Inspeccionar > Consola) y verifica si hay errores que pueden estar causando que el código no funcione como se espera.
3. Código Completo:
Asegúrate de que tu código JavaScript está correctamente estructurado. Aquí hay un ejemplo revisado y completo:
### Ejemplo Completo
#### HTML
Incluye tus imágenes y botones:
HTML:<ins class="loaders"> <div class="floop"> <img src="./imguser/imagen1.jpg" class="loadpost cora" /> <img src="./imguser/imagen2.jpg" class="loadpost cora" style="display: none;" /> <img src="./imguser/imagen3.jpg" class="loadpost cora" style="display: none;" /> <!-- Más imágenes --> </div> <a href="#" class="floopbuton cora" data-index="0">1</a> <a href="#" class="floopbuton cora" data-index="1">2</a> <a href="#" class="floopbuton cora" data-index="2">3</a> </ins>
#### JavaScript
Asegúrate de que este código está al final del cuerpo o dentro de un eventoDOMContentLoaded:
JavaScript:<script> let currentIndex = 0; const images = document.querySelectorAll('.loadpost'); const buttons = document.querySelectorAll('.floopbuton'); const totalImages = images.length; let interval; // Variable para almacenar el temporizador function showImage(index) { // Ocultar la imagen actual images[currentIndex].style.display = 'none'; buttons[currentIndex].classList.remove('active'); // Remover clase activa // Mostrar la nueva imagen currentIndex = index; images[currentIndex].style.display = 'block'; buttons[currentIndex].classList.add('active'); // Añadir clase activa } function showNextImage() { let nextIndex = (currentIndex + 1) % totalImages; showImage(nextIndex); } function startInterval() { clearInterval(interval); // Detener cualquier intervalo existente interval = setInterval(showNextImage, 5000); // Reiniciar el intervalo } // Iniciar el intervalo al cargar la página startInterval(); // Agregar eventos a los botones buttons.forEach((button, index) => { button.addEventListener('click', (e) => { e.preventDefault(); // Prevenir scroll de anclas showImage(index); // Mostrar la imagen al botón correspondiente startInterval(); // Reiniciar el intervalo al hacer clic }); }); // Inicializar la primera imagen y botón showImage(currentIndex); </script>
### Resumen
- Asegúrate de que
startInterval()sea llamado cada vez que se haga clic en un botón.- Verifica errores en la consola que puedan estar causando problemas.
- Revisa que el código esté bien estructurado y no tenga errores de sintaxis.
Si este código aún no funciona, asegúrate de revisar más a fondo para ver si hay algo externo afectando la lógica. Si puedes proporcionar más detalles o errores específicos, podría ayudarte mejor. ¡Espero que esto ayude!