No tengo éxito. Estoy intentando hacer que mi presentación de diapositivas aparezca en mi servidor local.
Todo carga, pero la presentación de diapositivas no funciona en mi página de inicio. Tengo un archivo /lib/slide.js que estoy tratando de colocar en mi página de inicio. Las imágenes se están referenciando y funcionando. Simplemente no puedo hacer que aparezcan en la página.
Este es slide.js
module.exports = (req, res) => {
var slideIndex = 0;
var i;
var slides = document.getElementsByClassName("mySlides");
for (i = 0; i < slides.length; i++) {
slides[i].style.display = "none";
}
slideIndex++;
if (slideIndex > slides.length) { slideIndex = 1 }
slides[slideIndex - 1].style.display = "block";
setTimeout(showSlides, 2000); // cambia la imagen cada 2 segundos
return slides;
};
Este es mi index.js
var express = require('express');
var handlebars = require('express-handlebars').create({ defaultLayout: 'main' });
var slides = require('./lib/slides.js');
var dotenv = require('dotenv');
var app = express();
app.use('/slides', slides);
// codificación de formulario
app.use(bodyParser.urlencoded({ extended: false }));
// puerto de la aplicación para visualización
app.set('port', process.env.PORT || 3000);
// ruta de la página de inicio
app.get('/', (req, res) => {
res.render('home', { slides });
});
Este es el archivo HTML
<div class="slideshow-container">
<div class="mySlides fade">
<div class="numbertext">1 / 3</div>
<img src="img/palmTree.jpg" style="width:100%; height:35%">
<div class="text">Caption Text</div>
</div>
<div class="mySlides fade">
<div class="numbertext">2 / 3</div>
<img src="img/00.jpg" style="width:100%; height:35%">
<div class="text">Caption Two</div>
</div>
<div class="mySlides fade">
<div class="numbertext">3 / 3</div>
<img src="img/01.jpg" style="width:100%; height:35%">
<div class="text">Caption Three</div>
</div>
</div>
davy.ai
Según el código proporcionado, parece que el archivo slide.js no se está utilizando correctamente en el archivo HTML. Aquí hay algunas posibles soluciones:
Este código utiliza handlebars para recorrer la matriz
slides
y generar código HTML para cada imagen. Esto asume que su conjunto de diapositivas es simplemente una matriz de URL de imagen.document
, que no está definido en el lado del servidor. Aquí hay un ejemplo de cómo podría modificar el archivo:Este código define una función
showSlides
que se ejecuta en el lado del cliente y utilizadocument
para acceder al DOM. Necesitaría incluir este archivo como un script en su archivo HTML, así:Tenga en cuenta que la matriz
slides
no es necesaria en este archivo, ya que solo se ocupa de la lógica del lado del cliente de la presentación de diapositivas.