¿Cómo hacer que el desplazamiento infinito web personalizado cambie la URL?

Planeo hacer un portal de noticias donde planeo hacer una página de correo donde si el usuario mantiene el desplazamiento, el próximo post sigue apareciendo así como la URL sigue cambiando. Un ejemplo típico será el sitio web healthline.com y para referencia, la siguiente URL podría ser un ejemplo

https://www.healthline.com/nutrition/an-apple-a-day-keeps-the-doctor-away

Pregunta hecha hace 3 años, 4 meses, 29 días - Por algorithmalchemist


3 Respuestas:

  • historia. empujar Estado e historia. reemplazar El Estado puede hacerlo El ejemplo usa historia.reemplazar Estado. Si vuelves a escribir el func substitutoEstado en la consola, puedes ver la infomación de llamadas

    Respondida el Dec 18, 2020 a las 10:25 - por pixelprodigy50bb

    Votos positivos: 0 | Votos negativos: 0

  • Para lograr un desplazamiento infinito web personalizado que cambie la URL a medida que se desplazan los usuarios a través de los posts, puedes utilizar JavaScript junto con la funcionalidad de historial de navegación del navegador. Aquí te dejo un ejemplo básico de cómo podrías implementar esto:

    • Primero, necesitas crear una función que detecte cuándo el usuario está cerca del final de la página y cargue el próximo post mediante una petición AJAX. También necesitarás actualizar la URL en el historial de navegación.
    javascript
    function cargarSiguientePost() {
      // Realizar una petición AJAX para obtener el siguiente post
      // Supongamos que el siguiente post se carga en el elemento con id "contenedor-post"
      // Se actualiza la URL en el historial de navegación
      history.pushState(null, null, '/ruta-al-siguiente-post');
    }
    
    • Luego, necesitas llamar a esta función cuando el usuario se acerque al final de la página. Por ejemplo, puedes detectar cuando el scroll se encuentra cerca del fondo de la página y llamar a la función `cargarSiguientePost`.
    javascript
    window.addEventListener('scroll', function() {
      if ((window.innerHeight + window.scrollY) >= document.body.offsetHeight) {
        cargarSiguientePost();
      }
    });
    
    • Finalmente, para asegurarte de que los botones de navegación del navegador también funcionen correctamente con la funcionalidad de desplazamiento infinito, debes manejar los eventos `popstate` y actualizar el contenido en consecuencia.
    javascript
    window.addEventListener('popstate', function(event) {
      // Actualizar el contenido de la página según la nueva URL
      console.log(event.state);
    });
    

    Este es solo un ejemplo básico para darte una idea de cómo podrías implementar el desplazamiento infinito web personalizado que cambia la URL. Puedes adaptar este código según las necesidades específicas de tu proyecto. ¡Espero que te sea útil!

    Respondida el Dec 19, 2020 a las 10:28 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Cómo hacer que el desplazamiento infinito web personalizado cambie la URL:

    1. Utiliza History API:

    La History API de JavaScript permite a las aplicaciones web modificar la URL del navegador sin volver a cargar la página. Puedes usarla para actualizar la URL cuando el usuario se desplace a un nuevo post.

    2. Actualiza la URL mediante JavaScript:

    Una vez que se carga el siguiente post, utiliza JavaScript para actualizar la URL usando el método history.pushState. Por ejemplo:

    ```javascript // Obtener el título del post const tituloPost = document.querySelector('h1').textContent;

    // Crear la nueva URL const nuevaUrl = /${tituloPost};

    // Actualizar la URL usando History API history.pushState(null, null, nuevaUrl);

    
    
    3. Escucha eventos de desplazamiento:
    
     Usa un detector de eventos para escuchar los eventos de desplazamiento de la página.
     Cuando el usuario se desplace a una distancia determinada, carga el siguiente post y actualiza la URL.
    
    4. Actualiza el contenido de la página:
    
     Una vez que se carga el siguiente post, actualiza el contenido de la página utilizando JavaScript o un marco como React or Vue.js.
    
    Ejemplo completo:
    
    
    javascript

    // Detector de eventos de desplazamiento window.addEventListener('scroll', function() { // Obtener la posición de desplazamiento actual const posicionDesplazamiento = window.scrollY;

    // Cuando el desplazamiento alcanza una distancia determinada if (posicionDesplazamiento > 1000) { // Obtener el título del post siguiente const tituloPostSiguiente = document.querySelector('.post-siguiente h1').textContent;

    // Crear la nueva URL
    const nuevaUrl = `/${tituloPostSiguiente}`;
    
    // Actualizar la URL usando History API
    history.pushState(null, null, nuevaUrl);
    
    // Cargar el siguiente post mediante Ajax o una llamada a la API
    // Actualizar el contenido de la página con el post siguiente
    

    } }); ```

    Puntos adicionales:

    Utiliza una biblioteca como history.js para simplificar la gestión de la History API. Considera el uso de un marco de paginación de desplazamiento infinito como Infinite-Scroll para automatizar el proceso. Implementa el desplazamiento infinito con precaución, ya que puede afectar al rendimiento en algunos dispositivos.

    Respondida el Dec 19, 2020 a las 10:39 - por Gemini

    Votos positivos: 0 | Votos negativos: 0