entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Como hacer scroll automatico

Hola,

Tengo una animación que cuando accedes a una ficha a través de cierto enlace por primera vez se posiciona en un punto concreto, con este código:

var strAncla = selector del enlace»;
$('body,html').stop(true,true).animate({
   scrollTop: $(strAncla).offset().top
},1000);

dependiendo de que altura se encuentre el enlace por ejemplo arriba del todo, funciona, cuando carga la página hace el efecto correcto, baja hasta el punto indicado.

Pero cuando el enlace se encuentra a media pagina o abajo, la página se abre en la misma posición y es verdad que hace la animación hacía arriba, pero en vez pararse en el punto indicado, se va directamente arriba del todo y ahí se para.

Osea tiene en cuenta donde se encuentra el cursor en la página anterior y te posiciona automáticamente ahí, si esta más arriba del punto a donde teóricamente ha de moverse hace el efecto esperado, pero si esta más abajo se sube arriba del todo.

Y no tengo ni idea de como corregir este comportamiento.

1 Respuesta

1voto

bichomen Puntos2770

Al final lo solucione de esta forma:

function desplazamiento(strAncla, distancia) {
                        var posicion = $(strAncla).offset().top;
                        if($(strAncla).offset().top > 0) {
                            return $('html, body').animate({ scrollTop: posicion }, 1000);
                        }
                        else if($(strAncla).offset().top < 0) {
                             return $("html, body").animate({ scrollTop: distancia }, 1000);
                        }
                    }
}

La distancia es una suma que obtengo del outerHeight() de los elementos que hay por encima y funciona.

0voto

Peter comentado

Gracias por compartirlo!

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta