How To Add Image Card Hover Effect with Border Animation in Elementor

In this tutorial, I’ll show you how to create an eye-catching card hover effect on your WordPress Elementor website—without any external plugins! This effect works flawlessly on both desktop & mobile and is super easy to implement.

Following is the CSS code used in Image Box Widget:

selector{
    transform: translateY(-50%);
}



Following is the CSS code used in Image Hover Effect (on Section):

selector{
    --border-width: 2px;
    --color: #FFB400;
    --angle: -7deg;
}
selector.e-con,
selector.e-con .e-con-inner{
    align-items: center;
}
selector .elementor-widget-divider .elementor-widget-container{
    overflow: hidden;
    transition: all 0.3s ease-in-out;
}
selector .elementor-widget-divider .elementor-divider,
selector .elementor-widget-divider .elementor-widget-container{
    position: relative;
}
selector .elementor-widget-divider .elementor-widget-container:before,
selector .elementor-widget-divider .elementor-widget-container:after,
selector .elementor-widget-divider .elementor-divider:before,
selector .elementor-widget-divider .elementor-divider:after{
    content: "";
    position: absolute;
    background: var(--color);
}
selector .elementor-widget-divider .elementor-widget-container:before,
selector .elementor-widget-divider .elementor-widget-container:after{
    height: var(--border-width);
    width: 100%;
    transform: scaleX(0);
}
selector .elementor-widget-divider .elementor-widget-container:before{
    top: 0;
    transform-origin: right;
}
selector .elementor-widget-divider .elementor-widget-container:after{
    bottom: 0;
    transform-origin: left;
}
selector .elementor-widget-divider .elementor-divider:before,
selector .elementor-widget-divider .elementor-divider:after{
    height: 100%;
    width: var(--border-width);
    transform: scaleY(0);
}
selector .elementor-widget-divider .elementor-divider:before{
    left: 0;
    transform-origin: top;
}
selector .elementor-widget-divider .elementor-divider:after{
    right: 0;
    transform-origin: bottom;
}
selector .elementor-column,
selector .e-con{
    transition: all 0.3s ease-in-out;
}
selector .elementor-column:hover,
selector .e-con:hover{
    transform: translateY(-15px);
}
selector .elementor-column img,
selector .e-con img{
    transition: all 0.3s ease-in-out;
}
selector .elementor-column:hover img,
selector .e-con:hover img{
    box-shadow: 0px 20px 20px 0px rgb(0 0 0 / 40%);    
}
selector .elementor-widget-image-box .elementor-widget-container{
    opacity: 0;
    transition: all 0.3s ease-in-out;
    transform: translateY(10px);
}
selector .elementor-column:hover .elementor-widget-image-box .elementor-widget-container,
selector .e-con:hover .elementor-widget-image-box .elementor-widget-container{
    opacity: 1;
    transform: none;
    transition-delay: 0.3s;
}

selector .elementor-column:hover .elementor-widget-divider .elementor-widget-container,
selector .e-con:hover .elementor-widget-divider .elementor-widget-container{
    background: var(--color);
    transform: rotate(var(--angle));
    transition-delay: 0.3s;
}
selector .elementor-column:hover .elementor-widget-divider .elementor-widget-container:before,
selector .elementor-column:hover .elementor-widget-divider .elementor-widget-container:after,
selector .e-con:hover .elementor-widget-divider .elementor-widget-container:before,
selector .e-con:hover .elementor-widget-divider .elementor-widget-container:after{
    transform: scaleX(100%);
    transition: all 0.5s ease-in-out;
}
selector .elementor-column:hover .elementor-widget-divider .elementor-divider:before,
selector .elementor-column:hover .elementor-widget-divider .elementor-divider:after,
selector .e-con:hover .elementor-widget-divider .elementor-divider:before,
selector .e-con:hover .elementor-widget-divider .elementor-divider:after{
    transform: scaleY(100%);
    transition: all 0.5s ease-in-out;
}

@media(max-width: 1024px){
selector .elementor-widget-wrap,
selector .e-con{
    width: 360px;
    max-width: 100%;
    margin-left: auto !important;
    margin-right: auto !important;
}
selector.e-con,
selector.e-con .e-con-inner{
    flex-direction: column;
}
selector .elementor-column:hover,
selector .e-con:hover{
    transform: none;
}
}
@media(max-width: 767px){
selector .elementor-widget-divider .elementor-divider-separator{
    border-top-width: 350px;
}
}

Following is the CSS code used in Columns :

selector{
    --color: #FF0000;
}
5/5 - (5 votes)

About

Leave a Comment

Your email address will not be published. Required fields are marked *