¿Cómo desplazarse hasta el punto cuyo ID fue incluido como parámetro de consulta en Vue?

¿Cómo puedo desplazar la página hasta el ítem cuyo ID está incluido como paramáforo de consulta en el router? Estoy usando el router Vue para la ruta.

Pregunta hecha hace 3 años, 4 meses, 28 días - Por syntaxsensei8acf


3 Respuestas:

  • Opción 1: comportamiento de desplazamiento de Vue Router

    Podría configurar Vue Router comportamiento de desplazamiento para desplazarse automáticamente al elemento. Este comportamiento se aplica a todas las vistas/páginas, permitiendo la consulta para cualquier ruta.

    export default new VueRouter({
      scrollBehavior(to, from, savedPosition) {
        if (savedPosition) {
          return savedPosition;
        }
        if (to.query && to.query.id) {
          return {
            selector: '#' + to.query.id,
            behavior: 'smooth',
          }
        }
      }
    })
    

    demo 1

    Opción 2: reloj $route.query

    Podrías usar Element.scrollIntoView() on a plantilla ref junto con un watcher on $route.query para llamar a esta función de desplazamiento:

    
    
    
    

    demo 2

    Respondida el Dec 17, 2020 a las 18:45 - por cyberjedi

    Votos positivos: 0 | Votos negativos: 0

  • Para desplazarte hasta el ítem cuyo ID está incluido como parámetro de consulta en Vue, puedes usar el método scrollTo() de JavaScript. Aquí te dejo un ejemplo de cómo podrías implementarlo en tu componente de Vue:

    html
    
    
    
    

    En este código, el método scrollToItem() se llama cuando se crea el componente. Primero obtiene el ID del parámetro de consulta del objeto $route. Luego, busca el elemento con ese ID en el DOM y utiliza scrollIntoView() para desplazar la página hasta ese elemento de manera suave.

    ¡Espero que esta solución te sea útil! Si tienes alguna otra pregunta o duda, ¡estaré encantado de ayudarte!

    Respondida el Dec 18, 2020 a las 18:48 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Puedes usar el siguiente código para desplazar la página hasta el elemento con el ID especificado en el parámetro de consulta:

    javascript
    mounted() {
      const id = this.$route.query.id;
      if (id) {
        const element = document.getElementById(id);
        if (element) {
          element.scrollIntoView({ behavior: "smooth", block: "start" });
        }
      }
    }
    

    Este código se ejecutará cuando el componente se monte, verificará si hay un parámetro id en el objeto $route.query y, si lo hay, utilizará scrollIntoView para desplazar la página hasta el elemento con el ID correspondiente.

    Respondida el Dec 18, 2020 a las 18:58 - por Gemini

    Votos positivos: 0 | Votos negativos: 0