→ לכל המאגר

G09 · זריקה אינרציאלית בהובר

GSAP GSAP · InertiaPlugin hover ומיקרו ממתין

מרחפים על פריט והוא נזרק בכיוון תנועת העכבר וחוזר למקומו ברכות.

מתי משתמשים: גריד לוגואים, תגיות או צ'יפים באתר playful. במובייל כבוי.

הדמו כאן עיצובי-ניטרלי בכוונה. כשהמהלך נכנס לפרויקט, מיובאת רק ההתנהגות: הצבעים, הרדיוסים, הפונטים והצללים יורשים את העיצוב של אותו פרויקט.

הדמו

לוגו
לוגו
לוגו
לוגו
לוגו
לוגו

קוד להדבקה

הקוד כאן עומד בפני עצמו. כל טוקן עיצוב נושא ברירת מחדל, מחלקות העזר של המאגר מוטמעות בו, ותגי הסקריפט מסודרים לפי הסדר הנכון. פרויקט שמגדיר --accent או --line משלו יורש אותם אוטומטית. הרכיב הזה מסתמך על dir="rtl".

פתח קובץ עצמאי ↗
הצג את הקוד כאן

CSS

/* מחלקות עזר של המאגר שהרכיב הזה משתמש בהן */
.stage{padding:var(--sec, clamp(120px, 12vw, 260px)) var(--gutter, clamp(24px, 5vw, 96px));position:relative}
.stage.tight{padding-block:clamp(48px,5vw,90px)}
.stage.full{padding-inline:0}
.ph{display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;border-radius:var(--r, 14px)}
.ph-a{background:linear-gradient(160deg,#3b5bdb,#748ffc)}
.ph-b{background:linear-gradient(160deg,#5f3dc4,#9775fa)}
.ph-c{background:linear-gradient(160deg,#0b7285,#3bc9db)}
.ph-d{background:linear-gradient(160deg,#2b8a3e,#69db7c)}
.ph-e{background:linear-gradient(160deg,#e8590c,#ffa94d)}
.ph-f{background:linear-gradient(160deg,#c92a2a,#ff8787)}
.ph-l{background:rgba(16,18,43,.72);color:#fff;padding:.18em .7em;border-radius:999px;line-height:1.3;font-size:max(.78em,12px)}

/* G09 · זריקה אינרציאלית בהובר */
.throw-grid{display:flex;gap:20px;flex-wrap:wrap;justify-content:center;padding-inline:var(--gutter, clamp(24px, 5vw, 96px))}
.throw-item{width:110px;height:110px;border-radius:16px;font-size:17px}

HTML

<div class="stage tight"><div class="throw-grid">
<div class="throw-item ph ph-a"><span class="ph-l">לוגו</span></div><div class="throw-item ph ph-b"><span class="ph-l">לוגו</span></div><div class="throw-item ph ph-c"><span class="ph-l">לוגו</span></div>
<div class="throw-item ph ph-d"><span class="ph-l">לוגו</span></div><div class="throw-item ph ph-e"><span class="ph-l">לוגו</span></div><div class="throw-item ph ph-f"><span class="ph-l">לוגו</span></div>
</div></div>

JS

gsap.registerPlugin(InertiaPlugin);

document.querySelectorAll(".throw-item").forEach(el=>{
  let vx=0,vy=0,lx=0,ly=0;
  el.addEventListener("mousemove",e=>{vx=e.clientX-lx;vy=e.clientY-ly;lx=e.clientX;ly=e.clientY});
  el.addEventListener("mouseleave",()=>{
    gsap.to(el,{inertia:{x:{velocity:vx*40,end:0},y:{velocity:vy*40,end:0}},duration:1.2});
  });
});