Foros del Web » Programando para Internet » Jquery »

Scroll a ancla en página diferente

Estas en el tema de Scroll a ancla en página diferente en el foro de Jquery en Foros del Web. Hola. Estoy buscando un sistema que me permita establecer un scroll suavizado hacia un ancla, pero en otra página . He dado con este script ...
  #1 (permalink)  
Antiguo 28/01/2016, 09:20
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 19 años
Puntos: 8
Scroll a ancla en página diferente

Hola.

Estoy buscando un sistema que me permita establecer un scroll suavizado hacia un ancla, pero en otra página.

He dado con este script que funciona:

http://stackoverflow.com/questions/1...pecific-anchor

Lo podéis ver en funcionamiento en esta otra dirección:

http://vostrel.cz/so/9652944/page.html

Como véis, "Scroll on page 1" conduce al ancla en

http://vostrel.cz/so/9652944/page.html#anchor_element

Y "Scroll on page 2" conduce suavemente al ancla en:

http://vostrel.cz/so/9652944/page2.html#anchor_element

El script es el que sigue:

Código:
(function($){  
    var jump=function(e)
    {
       if (e){
           e.preventDefault();
           var target = $(this).attr("href");
       }else{
           var target = location.hash;
       }

       $('html,body').animate(
       {
           scrollTop: $(target).offset().top
       },1000,function()
       {
           location.hash = target;
       });

    }

    $('html, body').hide()

    $(document).ready(function()
    {
        $('a[href^=#]').bind("click", jump);

        if (location.hash){
            setTimeout(function(){
                $('html, body').scrollTop(0).show()
                jump()
            }, 0);
        }else{
          $('html, body').show()
        }
    });  
})(jQuery)
Todo funciona perfectamente.

Se trata de dos páginas consecutivas con un listado de preguntas más frecuentes. En la primera a un listado completo, y en la segunda sólo el listado correspondiente a una subdivisión o subtítulo.

Así, en las dos páginas tienes los mismos enlaces a las anclas en la segunda página.

El problema es que mientras que acceder desde un enlace de la page1 al ancla en la page2 no tiene ningún fallo, si haces lo mismo con ese mismo enlace en page2 hacia el mismo ancla en page2 no hay efecto smooth en el scroll sino el típico salto al ancla.

Es decir, no funciona cuando usas el enlace desde la propia página a la que apunta.

Tiene que ver con cacheado, refrescado de página o como lo queramos llamar, porque he probado a establecer una redirección mediante htaccess, modificando el nombre del enlace en page2 para que redireccione al verdadero enlace con el ancla en esta página y funciona. Es decir, tienes que salir de la página y volver a entrar para que funcione el efecto. Se tiene que cargar todo de nuevo, porque si utilizas el enlace estando ya en la página no funciona.

No sé si a alguno de vosotros se os ocurre cómo modificar este script para que funcione tanto hacia una segunda página como desde la propia página que contiene el ancla.

Muchas gracias.
  #2 (permalink)  
Antiguo 28/01/2016, 16:35
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 19 años
Puntos: 8
Refrescar o recargar página

Llevo toda la tarde intentando solucionar este dilema, y os diré que no puedo conseguirlo.

No quiero recurrir a redirecciones con htaccess y me gustaría preguntar si una vez se pulsa el enlace en la página page2 sería posible obrar algún tipo de recarga para hacer funcionar correctamente este script.

Gracias.

Etiquetas: diferente, página, scroll
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:21.