Elementor Flex Containers Expand on Hover

Elementor Flex Containers Expand on Hover

Element.How also offers premium tutorials! Check them here:

Table of Contents

In this tutorial you are going to learn how to create these expandable Elementor flex containers on hover.

This tutorial uses the new containers element, as they are perfect for this.

See the demo here:

Visit the demo page directly.

Features:

  • Uses the new flex containers
  • CSS only design
  • Add whatever element(s) you wish in the content that shows up after hovering
  • Mobile ready (works on click there)
  • Demo is included as a template file
  • Elementor Pro is required as the template file uses the CTA element

Important note: You will need the feature "Container" to be enabled under Elementor > Experiments > Container. This uses the new Container element.

This tutorial is only recommended for users comfortable with modifying CSS. Due to the nature of the design, and all the different variations that could be made out of it, this particular tutorial comes with limited customization support & help. I will support in cases where you can't get it working. I might not help in making it look this or that way, or changing the animation.

Thank you for your understanding!

Credits: design idea from this codepen. I coded everything fresh, without any JavaScript.

Let's get started!

First, let's import the template file in your project

This is a premium tutorial. Purchase access to unlock the full tutorial and download the template.

Access tutorial

$19/one time Purchase access

Includes

  • Gain Access to This TutorialUnlock complete access to the current tutorial: Elementor Flex Containers Expand on Hover
  • Future UpdatesYou will get access to all future updates to this tutorial.
  • Enjoy Unlimited UsageUse on as many of your own sites or your clients sites as you wish.

    Note that reselling or redistributing is not permitted.

Access everything

$299/one time Purchase All Access

Includes

  • Unlock every premium tutorial on Element.howGet access to the entire library of premium tutorials on Element.how
    Preview premium tutorials
  • Get access to the CSS course for Elementor usersAccess the complete 14 HTML chapters, 30 CSS chapters and 7 Elementor Projects.Learn more
  • Simple CSS Grid For ElementorAn Elementor Addon to Create Awesome Grid Layouts in a Single Click for Containers, Galleries and Loop Grid. Learn more
  • free extra: ShapeDividers.com Premium AccessLifetime Premium Access to ShapeDividers.comVisit ShapeDividers.com
  • 6 months money backNo questions asked money back. Not what you expected? Get a refund.
  • One-time payment of only $299No hidden fees or subscriptions.

    Sales taxes added where applicable.
  • Support not needed!Due to personal circumstances, I no longer offer support. The vast majority of customers never needed support to start with, so chances are you will be just fine, the tutorials and templates provided are complete.

    I also extended the refund window from 1 to 6 months, during which you can get a full refund for any reason.
  • Lifetime access to everything Element.howThe price reflects what is currently available on Element.how. All future updates are included, but none are promised. You pay for what is available now, and the rest is a sweet extra.
* All prices are USD. Applicable taxes will be charged at checkout. Have a question? See the FAQ or email me.

Element.how also provides premium tutorials showing awesome advanced designs, check them out here.

Looking for something else? Search across 2927 Elements right here:

Checkout the Elementor Addon Finder directly

11 Responses

  1. Hello.
    I am customizing this template, and I want to change the font styling of the titles not being hovered, white the other one is. But it doesn't assume the font property. Is there a reason for this?

    I would appreciate some help.

    Thank you so much.

  2. hello Maxime, thanks a lot for your work. I'm trying to integrate into a jetengine liisting or a loop grid by elementor. I'm having trouble making this working fine just as your example. The render is not the same, on hover it shrinks instead of expand. Will you be kind enough to help me with that ? Many thanks in advance.
    Olivier

  3. Hello Maxime,

    Here it is https://542c-14ae9e63eb87.wptiger.fr/

    It is down on the Home page.
    The first one is a dynamic one made with the loop grid from elementor. The second one is the one I made with your code and it is the one I want to replicate above.
    Many Thanks in advance.
    If you need some admin credential just let me know.
    Olivier

    1. Hey Olivier!

      Here is a good starting point:

      .flexHover .elementor-loop-container.elementor-grid {
          display: flex;
      }
      
      .flexHover .e-loop-item {
          width: 100%;
          transition: width .8s
      }
      
      .flexHover_title {
          width: 100%;
          transition: opacity .6s, width .6s
      }
      
      .flexHover_title .elementor-widget-container {
          background-color: #00000044;
          display: flex;
          flex-direction: column;
          justify-content: center;
          pointer-events: none;
          transition: opacity .6s, width .6s
      }
      
      .flexHover:hover .e-loop-item:hover .flexHover_title {
          opacity: 0
      }
      
      .flexHover:hover .flexHover_title {
          width: 100%
      }
      
      .flexHover_content {
          opacity: 0;
          transition: .4s opacity;
          position: absolute;
          bottom: 20px;
          left: 100%;
          transform: translateX(-100%);
          min-width: 400px;
          width: 400px;
          padding: 0
      }
      
      .flexHover:hover .e-loop-item:hover .flexHover_content {
          opacity: 1;
          transition: .4s opacity .2s
      }
      
      @media (max-width: 767px) {
          .flexHover_content {
              min-width: 300px;
              width: 300px
          }
      }
      
      @media (min-width: 767px) {
          .flexHover:hover .e-loop-item {
              width: 20%
          }
      
          .flexHover:hover .e-loop-item:hover {
              width: 60%
          }
      }
      

      The Loop Grid element on the page needs the class flexHover (you already have it, writing this for others who might be interested).

      Then adjust the CSS as you need.

      Cheers!

      1. Many thanks !! that works great ! have a nice day and happy holiday season.

  4. Hey Maxime,
    Sorry to bother you again. I tried with the jetengine listing grid since the Loop grid does not allow custom query to display specifics items.

    I tried with that :

    .flexHover .jet-listing-grid__items {
    display: flex;
    }

    .flexHover .jet-listing-grid__item {
    width: 100%;
    transition: width .8s
    }

    .flexHover_title {
    width: 100%;
    transition: opacity .6s, width .6s
    }

    .flexHover_title .elementor-widget-container {
    background-color: #00000044;
    display: flex;
    flex-direction: column;
    justify-content: center;
    pointer-events: none;
    transition: opacity .6s, width .6s
    }

    .flexHover:hover .jet-listing-grid__item:hover .flexHover_title {
    opacity: 0
    }

    .flexHover:hover .flexHover_title {
    width: 100%
    }

    .flexHover_content {
    opacity: 0;
    transition: .4s opacity;
    position: absolute;
    bottom: 20px;
    left: 100%;
    transform: translateX(-100%);
    min-width: 400px;
    width: 400px;
    padding: 0
    }

    .flexHover:hover .jet-listing-grid__item:hover .flexHover_content {
    opacity: 1;
    transition: .4s opacity .2s
    }

    @media (max-width: 767px) {
    .flexHover_content {
    min-width: 300px;
    width: 300px
    }
    }

    @media (min-width: 767px) {
    .flexHover:hover .jet-listing-grid__item {
    width: 20%
    }

    .flexHover:hover .jet-listing-grid__item:hover {
    width: 60%
    }
    }

    But it is not quite good.
    Can you help me with that ? I have the feelings that I'm not far but I could not find the trick.

    Thanks again !

    Olivier

    1. Try this:

      .flexHover.flexHover.flexHover .jet-listing-grid__items {
          display: flex;
          flex-wrap: nowrap;
          word-break: break-all;
      }
      
      .flexHover.flexHover.flexHover .jet-listing-grid__item {
          width: 100%;
          transition: width .8s;
          flex-grow:1;
          flex-shrink:1;
          flex-basis:initial;
          max-width: initial;
      }
      
      .flexHover_title {
          width: 100%;
          transition: opacity .6s, width .6s
      }
      
      .flexHover_title .elementor-widget-container {
          background-color: #00000044;
          display: flex;
          flex-direction: column;
          justify-content: center;
          pointer-events: none;
          transition: opacity .6s, width .6s
      }
      
      .flexHover:hover .jet-listing-grid__item:hover .flexHover_title {
          opacity: 0;
      }
      
      .flexHover:hover .flexHover_title {
          width: 100%
      }
      
      .flexHover_content {
          opacity: 0;
          transition: .4s opacity;
          position: absolute;
          bottom: 20px;
          left: 100%;
          transform: translateX(-100%);
          min-width: 400px;
          width: 400px;
          padding: 0
      }
      
      .flexHover:hover .jet-listing-grid__item:hover .flexHover_content {
          opacity: 1;
          transition: .4s opacity .2s
      }
      
      @media (max-width: 767px) {
          .flexHover.flexHover .flexHover_content {
              min-width: 300px;
              width: 300px
          }
      }
      
      @media (min-width: 767px) {
          .flexHover.flexHover.flexHover:hover .jet-listing-grid__item {
              width: 20%
          }
      
          .flexHover.flexHover.flexHover:hover .jet-listing-grid__item:hover {
              width: 60%
          }
      }
      

      Cheers!

      1. Hello Maxime,
        Sorry for the delay, I was off for christmas and new year 😉 I wish you an happy new year and many success !

        Thank you so much, it works like a charm !!

        Talk to you soon !

        Olivier

Leave a Reply