Mostrar contenido oculto al pulsar un botón en Divi

La idea
A veces necesitamos habilitar algunas zonas en nuestra web o la de nuestro cliente donde mostrar más contenido. Sin embargo, no soy partidario de cargar demasiado una página con contenidos que no siempre son necesarios. Mostrar contenido oculto al pulsar un botón en Divi puede ser una buena solución.
Complementar determinados contenidos con información adicional no tiene por qué ser un inconveniente cuando queremos mantener una web limpia y clara. Y para ello vamos a utilizar hoy un poquito de código que nos va a permitir revelar contenido solo si el usuario lo considera necesario. Con la ayuda de un poco de JavaScript que pondremos en un módulo tipo código y algunos retoques lo conseguiremos. Haremos que al pulsar un botón se muestre una sección, fila o módulo. Si pulsamos otra vez, se ocultará de nuevo.
Nuestro ejemplo
A continuación puedes ver cómo va quedar nuestra práctica. Vamos a utilizar un módulo tipo llamada a la accion para desencadenar la instruccion cuando pulsemos sobre el botón del módulo. La sección que está oculta y que se va a mostrar contiene una galería.
Por supuesto podría usar cualquier otro tipo tanto para ejecutar el script como para desplegar el contenido oculto. Por ejemplo, en lugar de un módulo CTA (llamada a la accion) podíamos haber usado un botón, una imagen, o un módulo anuncio. Y para la sección/fila/módulo que se muestra, podríamos haber elegido cualquier combinación de módulos o fila o un módulo solo. Aquí tienes la muestra. Pulsa sobre el botón amarillo para mostrar la sección oculta:
Mostrar contenido oculto al pulsar un botón en Divi
Cuando pulses en el botón inferior, se mostrará contenido oculto, en este caso una galería de fotos. Cuando pulses de nuevo, se ocultará.
Cómo lo hacemos
Para este tutorial necesitaremos, como ya hemos comentado antes, dos secciones. La primera sección contendrá una primera fila con el módulo código donde vamos a pegar el JavaScript y otra fila que contiene el módulo llamado a la acción, y desde el botón de este módulo, activaremos el JavaScript que revelerá la sección inferior. Esta segunda sección contiene un módulo galería. Como ya te he comentado, podría contener lo que quisieras. Aquí tienes la estructura.
La primera sección. Módulo CTA
Esta primera sección va a contener el módulo llamada a la acción. Así que creamos una nueva entrada o página y activamos el constructor Divi. Pulsamos en insertar columna > añadir módulo y elegimos un módulo tipo llamada a la acción.
A continuación, en ajustes del módulo, contenido, ponemos título, texto y añadimos el texto que queramos que contenga el botón. En url ponemos # para que se active y sea visible el botón del módulo. Y en la pestaña Avanzado, clase CSS > escribimos botoncillo, que es la clase que pondremos en el módulo código.
La segunda sección. Módulo galería
Ahora vamos a generar la segunda sección. En ella pondremos el contenido que va a permanecer oculto hasta que pulsemos el botón. Yo me he inclinado por una galería, así que crea una. Añade las fotos que quieras, intenta que tengan la misma anchura y altura. En los ajustes de la sección (OJO, de la SECCIÓN, no fila ni módulo), pestaña Avanzado, id css escribimos mostrar.
El Módulo código. Añadiendo el JavaScript
Ahora solo nos queda insertar una líneas de JavaScript en un módulo tipo código. Este módulo podemos ponerlo en cualquiera de las secciones. Yo lo he puesto en las seccion del módulo CTA, antes de éste (mira la captura de la estructura más arriba). De manera que añadimos el módulo y en contenido pegamos el siguiente código:
<script type="text/javascript"> jQuery(document).ready(function() { // ocultar el contenido jQuery('#mostrar').hide(); jQuery('.botoncillo').click(function(e){ e.preventDefault();jQuery("#mostrar").slideToggle(); jQuery('.botoncillo').toggleClass('opened closed'); }); }); </script>
Y listo. Si todo ha ido bien, ya hemos conseguido lo que queríamos. Mostrar contenido oculto al pulsar un botón en Divi.
Y como siempre (o casi siempre), el tutorial en formato vídeo
Si te ha parecido interesante, comparte. ¡Gracias!
Genial el tutorial.
Había pensado hacer esto con pop-up aunque no estaba muy convencido de ellos por que me parecen muy intrusivos. Asi que me quedo con esta alternativa. Lo único que no me gusta (no se si es evitable) que durante la carga de la pagina se ve durante un instante la carga de lo que va oculto.
Un saludo y gracias por lo tutoriales
Gracias a ti, Pedrio.
Seguiremos al pie del cañón con mas tutoriales.
Gracias!
Genial aporte! Me surge una duda. Si tengo varios botones, cada uno muestra un contenido distinto, pero quiero que por ejemplo al pulsar btn-2 cierre el contenido que previamente ha abierto el btn-1 para que no se muestren los dos contenidos, ¿cómo podría hacerlo?
Gracias, Javier,
No soy experto en JavaScript, que supongo es lo que habría que modificar. De todas formas he estado mirando en la página original que inspiró el tutorial y en los comentarios tienes la solución. Navega hasta ahí https://divinotes.com/reveal-a-hidden-divi-section-row-or-module-on-button-click/ y busca el comentario de Tracy. Ya me cuentas.
Saludos!!!
Un gran aporte! me ha servido de mucha ayuda, pero me pasa lo mismo, tengo tres botones y no se oculta el contenido del anterior al activar el 2 o 3. Me he metido a ver el comentario pero entre que no sé de JavaScript y que de inglés voy regular no me entero de cómo consiguió Tracy el resultado que queremos… ¿Alguna ayuda, por favor?
Muchas gracias!!!
Hola, he visto el comentario de Traicy pero no me ayuda, no lo comprendo. Puedes explicarnos cómo implementarlo, por favor
buen tutorial pero busque por toda la web un tutorial parecido solo que en ves de una llamada a la acción se pueda poner un boton y muestre productos por ejemplo oferta ,destacado cada uno en botón y que aparezcan los productos sin salir de la pagina.
Gracias Robin
Puedes ponerlo en un botón si quieres. En el sitio original en el que me inspiré lo hacen en un botón. Échale un ojo, seguro que te puede servir.
https://divinotes.com/reveal-a-hidden-divi-section-row-or-module-on-button-click/
Saludos!!
Buen artículo y buen tutorial 🙂
Gracias, Eduardo!
Saludos
Me ha sido de mucha utilidad. Muchas gracias!
Gracias a tí, Albert. Me encanta que te haya sido útil.
Saludos
Hola, el artículo está genial, pero con la sección que lo hago está más abajo y a pesar de clicar el botón y mostrarse, no encuentro una manera de que automáticamente el botón me lleve hasta la sección que acabo de mostrar. ¿Cómo podría hacer eso?
Gracias de antemano.
Gracias, Alberto
Puedes asignarle un id a alguna fila o modulo de la sección a la que quieres navegar y poner la url en el botón que muestra el contenido. Por ejemplo, en el boton, en el apartado url, pon #navegar y en la primera fila de la sección que quieres mostrar, Ajustes> Avanzado > ID CSS pon «navegar» (sin las comillas). Si tienes dudas de cómo hacerlo mira este tutorial: https://aulamedia.net/navegar-entre-secciones-pagina-divi/
Ya me cuentas si te vale
Saludos
Muchas gracias por el tutorial esta muy bueno y me sirvió de mucho , ahora estoy tratando de hacer lo que esta en esta web http://www.northperurentacar.com.pe/reservation/, que cuando seleccione un auto me lleve a otra donde me pida fechas y después me lleve a los datos del cliente, si alguien tiene una idea o sabe como hacer agradecería lo compartiera, muchas gracias
Gracias, José Luis
Seguramente usas un pluging para las reservas. Habría que configurarlo. Supongo que el soporte te facilitará esta info. En cualquier caso, tal vez alguien ha estado en una situacion similar y pueda ayudarte.
Saludos
Lo he aplicado a un formulario y funciona igual, botón arriba de «mas info» hace que aparezca el formulario justo debajo y funciona perfectamente, gracias!
Genial! Me alegro que te haya sido útil
Saludos
Muchas gracias por su aporte.
¿Hay posibilidad de colocar una cruz, a modo de indicar al usuario que pulsando la misma se puede cerrar el módulo que se ha abierto y que no sea pulsando de nuevo en el botón con el que lo hemos abierto?
_Gracias
Puedes agregar una imagen de cruz y agregarle el mismo código.. No se si es lo más eficiente pero es lo que se me ocurre
HOLA, YA HIE TODO LO INDICADO Y EL BOTON ME MANDA A UNA PAGINA EN BLANCO, PORFAVOR AYUDA.
Revisa bien los pasos amigo, yo acabo de hacerlo y me ha funcionado perfecto
Excelente tutorial! Muchisimas gracias
Puedes agregar una imagen de cruz y agregarle el mismo código.. No se si es lo más eficiente pero es lo que se me ocurre
Hola,
Antes de nada, gracias por el tutorial, muy práctico.
Me ha servido en parte ya que estaba intentando hacer algo similar. La cuestión es que en mi caso, lo que necesito es que sea el botón el que se desplace hacia arriba dejando visible el contenido que tiene por debajo en un footer. El footer estará «fixed» en la posición «bottom: 0» y sería el botón el que se desplazaría arriba/abajo en cada clic.
Si lo maquetamos como está indicado en el tutorial, funciona así la segunda vez…. la primera, se desplaza hacia abajo el contenido del footer provocando scroll y luego ya si, las siguientes veces, el pie y el botón se desplazan hacia arriba / abajo en bloque. No así la primera.
Se te ocurre cómo lo puedo hacer? Tengo la sensación de que es un tema inicial de CSS, pero creo que lo he probado todo. He probado con Bootstrap en un HTML a parte,, pero al llevarlo a DIVI, éste no es compatible (o no hasta donde yo se) con Bootstrap y no hace lo mismo.
Muchas gracias por todo.
Un saludo
Hola como estas? Como puedo hacer eso mismo pero con mas botones y elementos. Lo que me gustaría hacer son 4 botones y que al darle clic a alguno muestre cierta info y también que cuando se le de clic al otro botón quite el resultado anterior y muestre uno nuevo y que haga lo mismo con cada botón, que al dar clic en un boton muestre un elemento y se esconda otro