⚡⚡ ¡FLASH SALE! 20% DE DESCUENTO SOLO POR UNOS DÍAS! ⚡⚡

La oferta termina en:

Día(s)

:

Hora(s)

:

Minuto(s)

:

Segundo(s)

Igualar la altura en el módulo del blog en rejilla

Inicio / Blog / Snippets / Igualar la altura en el módulo del blog en rejilla

UXDIVI

En este content hub te daremos el snippet para Igualar la altura en el módulo del blog de Divi en su configuración de rejilla

Cuando realizamos un blog estilo rejilla con el módulo de blog de Divi pasa que si no tenemos los extractos del post, o los titulos del mismo tamaño, los «cuadros» de los post no tienen la misma altura inicialmente, porque cada artículo o publicación contiene una cantidad diferente de contenido, incluso si solo el título de la publicación es mostrado.

Aprende a crear un blog estilo magazzine con este tutorial premium.

Bien, para resolver esto aplicaremos un poco de código javascript y una clase especifica a nuestro módulo de blog. Veamos los pasos:

Paso 1: Haz copia de seguridad de tu WordPress

Como vamos a meter código al sitio, siempre recomendamos que antes hagas una copia de seguridad por si algo sale mal. En este post te enseñamos como hacer una copia de seguridad en WordPress y como recuperarla también.

Paso 2: Aplicamos una clase CSS al módulo del blog

En este paso debemos aplicar una clase CSS personalizada al módulo del blog para que nuestro código posterior surta efecto.

Ve al módulo del blog: Configuración del blog > Avanzado > ID y clases de CSS > Clase de CSS y coloca la siguiente clase:

et_blog_grid_equal_height

opciones de modulo de blog de Dvi

Paso 3: Aplicamos el código javascript en las opciones de integración de Divi

Luego inserta y guarda el siguiente código JavaScript en Divi > Opciones de tema > Integración > Agregar código al Head de su blog:

<script>
(function($) {
    $(document).ready(function() {
        $(window).resize(function() {
            $('.et_blog_grid_equal_height').each(function() {
                equalise_articles($(this));
            });
        });

        $('.et_blog_grid_equal_height').each(function() {
            var blog = $(this);

            equalise_articles($(this));

            var observer = new MutationObserver(function(mutations) {
                equalise_articles(blog);
            });
            
            var config = {
                subtree: true,
                childList: true 
            };

            observer.observe(blog[0], config);
        });

        function equalise_articles(blog) {
            var articles = blog.find('article');
            var heights = [];
            
            articles.each(function() {
                var height = 0;
                height += $(this).find('.et_pb_image_container, .et_main_video_container').outerHeight(true);
                height += $(this).find('.entry-title').outerHeight(true);
                height += $(this).find('.post-meta').outerHeight(true); 
                height += $(this).find('.post-content').outerHeight(true);    

                heights.push(height);
            });

            var max_height = Math.max.apply(Math,heights); 

            articles.each(function() {
                $(this).height(max_height);
            });
        }

        $(document).ajaxComplete(function() {
            $('.et_blog_grid_equal_height').imagesLoaded().then(function() {
                $('.et_blog_grid_equal_height').each(function(){
                    equalise_articles($(this));
                });
            });
        });

        $.fn.imagesLoaded = function() {
            var $imgs = this.find('img[src!=""]');
            var dfds = [];

            if (!$imgs.length) {
                return $.Deferred().resolve().promise();
            }            

            $imgs.each(function(){
                var dfd = $.Deferred();
                dfds.push(dfd);
                var img = new Image();

                img.onload = function() {
                    dfd.resolve();
                };

                img.onerror = function() {
                    dfd.resolve(); 
                };

                img.src = this.src;
            });

            return $.when.apply($, dfds);
        }
    });
})(jQuery);
</script>

Código en opciones del tema Divi cabecera del blog

¡Y listo! Si todo sale bien, podrás igualar la altura en el módulo del blog en rejilla en tu blog con Divi.

El resultado será algo como esto:

Antes:

Igualar la altura en el módulo del blog en rejilla Divi

Después:

Resultado: Igualar la altura en el módulo del blog en rejilla Divi

Entra aquí para ver en acción la DEMO →

Disclaimer: Este código funciona cuando se incluyen publicaciones de blog tipo estándar o de video en el módulo de blog, el uso del formato de publicación de audio o cualquier otro formato de publicación hará que el código no funcione.

¿Te ha gustado? No olvides compartirlo y comentar nuestro contenido. Nos vemos en un próximo Snippet.

6 Comentarios

  1. Miguel del Pino

    Hola Jefferson, felicidades porque lograr esto tan útil y básico que en principio podría parecer sencillo, ya se ve que no es nada fácil de conseguir y que te ha requerido de la ayuda de un programador.
    Pero entiendo que ese código JavaScript, al meterlo en la cabecera de la web, carga en todos los post y páginas del sitio, aunque no tengan funcionando dentro el módulo de blog y eso puede provocar ralentización del sitio. Me gusta intentar que sólo se carguen las cosas que se utilizan ¿No hay manera de meterlo sólo en las publicaciones que tengan dentro el módulo de blog?
    Gracias.

    Responder
  2. David

    Hola Jefferson, te molesto con una consulta similar a esto, si en una sección tengo una imagen y un acordeón (toggle), cómo logro que ambos módulos siempre tenga el mismo alto? Te consulto esto, porque si bien la imagen se va achicando de manera responsiva, el acordeón no lo hace en conjunto a la imagen y siempre tengo un espacio blanco debajo de la imagen, hasta que la pantalla llega a una medida de tablet o Mobile. Gracias desde Argentina.

    Responder
    • Jefferson M.

      Que tal mi estimado David. Para lograr esto, lo que te puedo recomendar es que la imagen no la coloques con el módulo de imagen, sino más bien como «fondo» de la columna número 2. Luego, en las opciones de diseño de la fila activa la casilla que dice «igualar la altura de las columnas» y con ello la imagen te quedará del tamaño de la columna número 1 sin importar su tamaño.

      Responder
      • David

        Gracias, funciona! Y gracias por el contante aporte que haces.

        Responder

Enviar un comentario

Tu dirección de correo electrónico no será publicada.

Mi carrito
El carrito está vacío.

Parece que aún no te has decidido.