WEBLEB
Home
Editor
Login
Pro
English
English
Français
Español
Português
Deutsch
Italiano
हिंदी
GSAP hover effect
1141
Andev.web
Open In Editor
Publish Your Code
Recommended
17 March 2025
CodePen Home Cipher Quest: Codebreaker
20 August 2024
Pure CSS Bike Card
19 September 2023
On Scroll Text Animation
HTML
Copy
Andev Web
STYLE
PRAISE
FASHION
CSS
Copy
@import url("https://fonts.googleapis.com/css2?family=Red+Rose:wght@400;700&display=swap"); * { box-sizing: border-box; margin: 0; padding: 0; } html, body { width: 100%; height: 100%; } body { background: #121013; display: grid; place-items: center; } .cards__wrapper { width: 100%; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; pointer-events: none; opacity: 0; } .cards__wrapper .card { position: relative; width: 340px; height: 400px; margin: 3rem 5rem; pointer-events: none; } .cards__wrapper .card__image--wrapper { position: relative; width: 100%; height: 100%; overflow: hidden; filter: grayscale(0); transition: filter 0.5s ease; } .cards__wrapper .card__image { position: absolute; left: 0; top: 0; height: 100%; width: 100%; object-fit: cover; transform: scale(1.15); transition: transform 0.5s ease, opacity 0.35s ease; } .cards__wrapper .card__image--outer { position: relative; width: 100%; height: 100%; overflow: hidden; } .cards__wrapper .card__text { position: absolute; left: 0; bottom: 25%; transform: translateX(-8rem); pointer-events: none; user-select: none; mix-blend-mode: difference; } .cards__wrapper .card__text--inner { display: inline-block; color: #fff; font-size: 5rem; font-family: "Red Rose", Roboto; font-weight: 700; overflow: hidden; } .cards__wrapper .card__text--inner .word { white-space: nowrap; } .cards__wrapper .card__text--inner .char { display: inline-block; transform: translateY(100%); transition: transform 0.5s cubic-bezier(0.5, 0, 0, 1); transition-delay: calc(0ms + var(--char-index) * 20ms); } .cards__wrapper .card:hover .card__image { transform: scale(1); } .cards__wrapper .card:hover .card__text--inner .char { transform: translateY(0%); } .cards__wrapper:hover > .card:not(:hover) .card__image--wrapper { filter: grayscale(1); } .cards__wrapper:hover > .card:not(:hover) .card__image { opacity: 0.8; } .support { position: fixed; right: 10px; bottom: 10px; padding: 10px; display: flex; } .support a { margin: 0 10px; color: #fff; font-size: 1.8rem; backface-visibility: hidden; transition: all 150ms ease; } .support a:hover { transform: scale(1.1); }
JS
Copy
console.clear(); const { gsap, Splitting } = window; Splitting(); gsap.set('.cards__wrapper', { autoAlpha: 1 }) gsap.timeline({ defaults: { duration: 1.25, stagger: 0.125, ease: "expo.inOut", }, }) .fromTo(".card__image--wrapper", { yPercent: 110 }, { yPercent: 0 }, 0) .fromTo(".card__image--outer", { yPercent: -110 }, { yPercent: 0 }, 0) .set(".cards__wrapper, .card", { pointerEvents: "all" }, "-=1");