הכפתור הוא הרגע הכי חשוב באתר: הנקודה שבה גולש מחליט אם ללחוץ. מיקרו-אינטראקציה קטנה שם - כפתור שמגיב, שמזמין, שנותן משוב - יכולה להיות ההבדל בין לחיצה לבין גלישה הלאה.
וכמו בפוסטים הקודמים (טקסט ותמונות), גם כאן: כל אפקט חי, בלי שום תוסף, על עמוד מהיר. תלחצו, תרחפו, תשחקו עם המהירות - ואם משהו מתאים לאתר שלכם, לחיצה אחת ואנחנו יודעים.
כל האפקטים מכבדים את הגדרת prefers-reduced-motion.
אפקטים ומיקרו-אינטראקציות לכפתורים
הצג קוד
btn.onpointermove = e => {
const r=btn.getBoundingClientRect();
btn.style.transform=`translate(
${(e.clientX-r.left-r.width/2)*.4}px,
${(e.clientY-r.top-r.height/2)*.4}px)`; };הצג קוד
btn.onclick = e => {
const s=document.createElement('span'); s.className='ripple';
s.style.left=e.offsetX+'px'; s.style.top=e.offsetY+'px';
btn.appendChild(s); setTimeout(()=>s.remove(), 600); };
/* .ripple { animation: ripple var(--dur,.6s); } */הצג קוד
.btn { position:relative; z-index:0; }
.btn::before { content:''; position:absolute; inset:0; z-index:-1;
background: var(--accent); transform: scaleX(0); transform-origin: right;
transition: transform var(--dur,.4s); }
.btn:hover::before { transform: scaleX(1); }הצג קוד
.btn::after { content:''; position:absolute; inset:0;
border:2px solid var(--accent); clip-path: inset(0 0 0 100%);
transition: clip-path var(--dur,.5s); }
.btn:hover::after { clip-path: inset(0); }הצג קוד
.btn { animation: pulse var(--dur,2s) ease-in-out infinite; }
@keyframes pulse { 50% {
box-shadow: 0 0 0 4px rgba(59,217,255,.15),
0 0 24px 2px rgba(59,217,255,.5); } }הצג קוד
.btn::before { content:''; position:absolute; inset:0;
background: linear-gradient(110deg, transparent 40%,
rgba(255,255,255,.55) 50%, transparent 60%);
transform: translateX(-120%);
animation: shine var(--dur,2.5s) linear infinite; }ממשיכים הלאה
זו הקטגוריה השלישית בתפריט. כבר יש אפקטים לטקסט ולתמונות, ובהמשך נוסיף אפקטים לסקשנים שלמים, לרקעים ולמספרים.
רוצים כמה מהאפקטים האלה על האתר שלכם? הם חלק מהבנייה אצלנו - דברו איתנו.
