JavaScript - Mostrar/ocultar div en scroll

 
Vista:
sin imagen de perfil
Val: 17
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Mostrar/ocultar div en scroll

Publicado por Julián (7 intervenciones) el 09/04/2021 17:18:46
Muy buenas a todos, el otro día programé una tabla html que muestra y oculta el div en scroll. El problema viene dado a que cuando pulso en la fila (muestra y oculta perfectamente) pero la web hace scroll hasta el header, teniendo que bajar otra vez a la tabla para poder ver las filas que se expandieron. Alguna sugerencia de lo que puede ser?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 3.506
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Mostrar/ocultar div en scroll

Publicado por joel (895 intervenciones) el 09/04/2021 19:20:36
Hola Julián, vi tu comentario, pero no entiendo muy bien... nos lo puedes mostrar con una imagen, o publicando el código para poder probarlo?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Joel
Val: 3.506
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Mostrar/ocultar div en scroll

Publicado por Joel (895 intervenciones) el 09/04/2021 19:56:19
Hola Julián, el problema es que estas llamando a la función desde un <a href="#" ... por lo que una vez abre o cierra el elemento, lo envia al anchor "#", y si no esta definido, lo envía al inicio de la pagina.

La solución pasa por cancelar el evento con preventDefault()... algo así:
1
2
3
4
5
6
function mostrarOcultar(e,iddiv)
{
    e.preventDefault();
    const div=document.getElementById(iddiv);
    div.style.maxHeight = div.style.maxHeight=="0px" || div.style.maxHeight==""  ? div.querySelector("div").offsetHeight+"px" : "0px";
}

y tendrás que pasar el evento a la función, por lo que en el enlace, tendrás que pasar el evento algo así:
1
<a href="#" onclick="mostrarOcultar(event,'iddiv20')">


NOTA; No tienes que duplicar la función, con que haya una sola es suficiente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 17
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Mostrar/ocultar div en scroll

Publicado por Julián (7 intervenciones) el 09/04/2021 20:27:31
He colocado esa función tal cual, y el enlace y sigue haciendo lo mismo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 17
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Mostrar/ocultar div en scroll

Publicado por Julián (7 intervenciones) el 09/04/2021 21:09:23
Solucionado Joel. Muchas gracias y disfruta del finde.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar