Foros del Web » Programando para Internet » Javascript »

Insertar clase en elemento a partir de hashtag en URL

Estas en el tema de Insertar clase en elemento a partir de hashtag en URL en el foro de Javascript en Foros del Web. Buenas tardes. En una página he establecido un sistema de enlaces hacia zonas inferiores con anclas muy común en secciones legales, mapas del sitio, etc. ...
  #1 (permalink)  
Antiguo 19/01/2016, 12:03
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 18 años, 5 meses
Puntos: 8
Insertar clase en elemento a partir de hashtag en URL

Buenas tardes.

En una página he establecido un sistema de enlaces hacia zonas inferiores con anclas muy común en secciones legales, mapas del sitio, etc.

Cuando pulso uno de los enlaces la página hace el scroll correspondiente hasta el ancla:

Código:
<a id="este-ancla"></a>
Una vez que tengo un hashtag en la URL quiero una clase en un elemento determinado:

El hash de ejemplo #este-hash

El elemento en el html, donde quiero que se inserte la clase "active", es la h1 "esta-clase".

Código:
  <div class="heading">
    <h1 class="esta-clase">Prueba</h1>
  </div>
Con este javascript se consigue a partir de la detección del hashtag.

Código:
$(function(){
if ( window.location.hash == "#este-ancla" ) {

        $(".esta-clase").addClass("active");

    } 
});
El problema es que no inserta la clase si no refrescas el navegador, porque claro, la página sigue siendo la misma, es decir, no ha cambiado de sitio, el navegador no se ha refrescado al pasar a otra página.

Si me explico.

¿Es posible solucionarlo?

He intentado un refrescado automático, pero se produce un bucle sin fin.

No sé si se os ocurre otra cosa.
  #2 (permalink)  
Antiguo 19/01/2016, 13:13
Avatar de carlillos  
Fecha de Ingreso: febrero-2007
Ubicación: México
Mensajes: 245
Antigüedad: 17 años, 2 meses
Puntos: 21
Respuesta: Insertar clase en elemento a partir de hashtag en URL

Es que tu script se está ejecutando sólo una vez cuando se carga la página, lo que tendrías que hacer sería también ejecutarlo cuando se produzca un evento de clic en tus enlaces.
  #3 (permalink)  
Antiguo 19/01/2016, 14:41
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Insertar clase en elemento a partir de hashtag en URL

Para detectar el cambio, utiliza el evento popstate.

Código Javascript:
Ver original
  1. window.addEventListener("popstate", function(){
  2.     //Instrucciones
  3. }, false);

Un saludo
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: clase, elemento, hashtag, html, scroll, url
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 21:44.