Create Dream Website

Create a Wave Hover Effect in Elementor Gallery with Elementor Free

Basic Apparel

Read More

Basic Apparel

Read More

Basic Apparel

Read More

Shaping Shoe

Read More

ARkk Project

Read More

Bahne TML

Read More

Bahne TML

Read More

DEA Clothing

Read More

Elementor Image wave code:

HTML
<html>

  <body data-rsssl=1 data-rsssl=1 data-rsssl=1>
    <div class="wrapper">
      <div class="imgs-parent">
        <div class="img" style="background-image: url(https://elementor-template.lifeonablock.com/wp-content/uploads/2024/10/elementor-placeholder-image.webp)">
          <div class="content">
            <h3>Fusion®</h3>
            <a href="https://nicopalmkvist.gumroad.com/l/hrlzf" class="btn" target="_blank" rel="noopener">Read More</a>
          </div>
        </div>
        <div class="img" style="background-image: url(https://elementor-template.lifeonablock.com/wp-content/uploads/2024/10/elementor-placeholder-image.webp)">
          <div class="content">
            <h3>Panzer Collect</h3>
            <a href="https://nicopalmkvist.gumroad.com/l/hrlzf" class="btn" target="_blank" rel="noopener">Read More</a>
          </div>
        </div>
        <div class="img" style="background-image: url(https://elementor-template.lifeonablock.com/wp-content/uploads/2024/10/elementor-placeholder-image.webp)">
          <div class="content">
            <h3>BikeUP™</h3>
            <a href="https://nicopalmkvist.gumroad.com/l/hrlzf" class="btn" target="_blank" rel="noopener">Read More</a>
          </div>
        </div>
        <div class="img" style="background-image: url(https://elementor-template.lifeonablock.com/wp-content/uploads/2024/10/elementor-placeholder-image.webp)">
          <div class="content">
            <h3>Basic Apparel</h3>
            <a href="https://nicopalmkvist.gumroad.com/l/hrlzf" class="btn" target="_blank" rel="noopener">Read More</a>
          </div>
        </div>
        <div class="img" style="background-image: url(https://elementor-template.lifeonablock.com/wp-content/uploads/2024/10/elementor-placeholder-image.webp)">
          <div class="content">
            <h3>Shaping Shoe</h3>
            <a href="https://nicopalmkvist.gumroad.com/l/hrlzf" class="btn" target="_blank" rel="noopener">Read More</a>
          </div>
        </div>
        <div class="img" style="background-image: url(https://elementor-template.lifeonablock.com/wp-content/uploads/2024/10/elementor-placeholder-image.webp)">
          <div class="content">
            <h3>ARkk Project</h3>
            <a href="https://nicopalmkvist.gumroad.com/l/hrlzf" class="btn" target="_blank" rel="noopener">Read More</a>
          </div>
        </div>
        <div class="img" style="background-image: url(https://elementor-template.lifeonablock.com/wp-content/uploads/2024/10/elementor-placeholder-image.webp)">
          <div class="content">
            <h3>Bahne TML</h3>
            <a href="https://nicopalmkvist.gumroad.com/l/hrlzf" class="btn" target="_blank" rel="noopener">Read More</a>
          </div>
        </div>
        <div class="img" style="background-image: url(https://elementor-template.lifeonablock.com/wp-content/uploads/2024/10/elementor-placeholder-image.webp)">
          <div class="content">
            <h3>Bahne TML</h3>
            <a href="https://nicopalmkvist.gumroad.com/l/hrlzf" class="btn" target="_blank" rel="noopener">Read More</a>
          </div>
        </div>
        <div class="img" style="background-image: url(https://elementor-template.lifeonablock.com/wp-content/uploads/2024/10/elementor-placeholder-image.webp)">
          <div class="content">
            <h3>DEA Clothing</h3>
            <a href="https://nicopalmkvist.gumroad.com/l/hrlzf" class="btn" target="_blank" rel="noopener">Read More</a>
          </div>

        </div>
      </div>
    </div>
  </body>
</html>
CSS + JavaScript
JavaScript
<style>
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

:root {
  --transition: cubic-bezier(0.1, 0.7, 0, 1);
}

body {
  background: linear-gradient(90deg, black, #333);
}

.wrapper {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 40vh;
}

.imgs-parent {
  display: flex;
  gap: 0.4rem;
  perspective: 60rem;
}

.img {
  width: 8.0rem;
  height: 19rem;
  background-size: cover;
  background-position: center;
  cursor: pointer;
  transition: transform 1.25s var(--transition), filter 3s var(--transition), width 0.3s var(--transition);
  position: relative;
  filter: grayscale(0) brightness(0.7);
  will-change: transform, filter;
  border-radius: 8px;
}

.content {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  padding: 10px;
  color: white;
  text-align: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

h3 {
  font-size: 14px !important;
  margin-bottom: 5px;
}

/* Button */
.btn {
  display: inline-block;
   font-family: "Montserrat", Sans-serif;
  padding: 4px 10px;
background-color: transparent;
    background-image: linear-gradient(140deg, #0071E3 42%, #25409E 100%);
  color: white;
  text-decoration: none;
  font-size: 12px;
      font-weight: 600;
       fill: #000000;
  border-radius: 15px;
  text-align: center;
  transition: background-color 0.3s ease, opacity 0.3s ease, visibility 0.3s ease;
  opacity: 0;
  visibility: hidden;
  margin-bottom: 8px;
text-decoration: none !important;
}

.img:hover .btn,
.img:hover .content {
  opacity: 1;
  visibility: visible;
}

.btn:hover {
  background-color: #005bb5;
}

.img:hover {
  transform: translateZ(17.375rem);
  filter: grayscale(0) brightness(0.9);
}

.img:hover .content {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}

.img::before,
.img::after {
  content: "";
  position: absolute;
  width: 1.25rem;
  height: 100%;
  right: -1.25rem;
}

.img::after {
  left: -1.25rem;
}

.img:hover + * {
  transform: translateZ(14.77rem) rotateY(35deg);
  filter: grayscale(0.2) brightness(0.9);
  z-index: -1;
}

.img:hover + * + * {
  transform: translateZ(9.73rem) rotateY(40deg);
  filter: grayscale(0.4) brightness(0.8);
  z-index: -2;
}

.img:hover + * + * + * {
  transform: translateZ(4.17rem) rotateY(35deg);
  filter: grayscale(0.6) brightness(0.7);
  z-index: -3;
}

.img:hover + * + * + * + * {
  transform: translateZ(1.1rem) rotateY(25deg);
  filter: grayscale(0.8) brightness(0.6);
  z-index: -4;
}

.img:has(+ :hover) {
  transform: translateZ(14.77rem) rotateY(-35deg);
  filter: grayscale(0.2) brightness(0.9);
}

.img:has(+ * + :hover) {
  transform: translateZ(9.73rem) rotateY(-40deg);
  filter: grayscale(0.4) brightness(0.8);
}

.img:has(+ * + * + :hover) {
  transform: translateZ(4.17rem) rotateY(-35deg);
  filter: grayscale(0.6) brightness(0.7);
}

.img:has(+ * + * + * + :hover) {
  transform: translateZ(1.1rem) rotateY(-25deg);
  filter: grayscale(0.8) brightness(0.6);
}

.open {
  width: 25vw;
  transform: translateZ(17.375rem);
  filter: inherit;
  z-index: 1;
  margin: 0 0.45vw;
}

@media (max-width: 820px) {
  .img {
    width: 4.0rem;
    height: 19rem;
  }

  .img:hover {
    transform: translateZ(17.375rem);
    filter: inherit;
  }

  .open {
    width: 20vw;
    transform: translateZ(7.375rem);
    filter: inherit;
    z-index: 1;
    margin: 0 0.45vw;
  }

  /* Mindre tekst og knap på mindre skærme */
  h3 {
    font-size: 8px;
  }

  .btn {
    font-size: 8px;
    padding: 2px 5px;
    border-radius: 10px;
  }
}


</style>


<script>

    document.body.addEventListener("click", (event) => {
  const clickedElement = event.target,
    imgs = document.querySelectorAll(".img");

  if (!clickedElement.classList.contains("img")) {
    imgs.forEach((img) => img.classList.remove("open"));
    return;
  }

  if (clickedElement.classList.contains("open")) {
    clickedElement.classList.remove("open");
    return;
  }

  imgs.forEach((img) => img.classList.remove("open"));
  clickedElement.classList.add("open");
});

document.body.addEventListener("click", (event) => {});

</script>

Leave a Comment

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

Scroll to Top