CSS Pulsuz, qeydiyyatsız

Cubic-bezier generatoru

Qrafikdə iki nöqtəni sürüşdürün və ya dəyərləri yazın — əyri və animasiya dərhal yenilənir, aşağıda isə cubic-bezier() ilə hazır transition görünür.

Nəticə
Hazır CSS kodu
.element {
  transition: transform 600ms cubic-bezier(0.25, 0.1, 0.25, 1);
}

Necə istifadə etmək olar

  1. Hazır əyrini seçin (ease, ease-out, easeOutBack və s.) və ya standart əyridən başlayın.
  2. Qrafikdəki qırmızı və bənövşəyi nöqtələri sürüşdürün və ya x1, y1, x2, y2 sahələrinə dəyər yazın. Klaviaturadan: nöqtəyə fokuslanın və ox düymələrindən istifadə edin (Shift — kiçik addım).
  3. Müddəti və müqayisə əyrisini (linear, ease…) seçib «Oynat» düyməsini basın: mavi blok sizin əyri ilə, boz blok isə müqayisə əyrisi ilə hərəkət edir.
  4. «Kopyala» düyməsini basın və transition-u öz CSS faylınıza yapışdırın.

Bu necə işləyir

cubic-bezier() nə deməkdir

cubic-bezier(x1, y1, x2, y2) (0, 0) nöqtəsindən başlayıb (1, 1) nöqtəsində bitən Bézier əyrisini təsvir edir. Üfüqi ox zamanı, şaquli ox isə dəyişikliyin nə qədərinin tamamlandığını göstərir. Dörd ədəd iki idarəetmə nöqtəsinin koordinatlarıdır: P1 əyrini əvvəldə, P2 isə sonda «dartır». Əyri nə qədər dikdirsə, həmin anda hərəkət o qədər sürətlidir.

transition: transform 600ms cubic-bezier(0.25, 0.1, 0.25, 1);

Açar sözlər hazır əyrilərdir

Hər sürət açar sözü sabit bir cubic-bezier()-in qısaltmasıdır: ease — cubic-bezier(0.25, 0.1, 0.25, 1), ease-in — (0.42, 0, 1, 1), ease-out — (0, 0, 0.58, 1), ease-in-out — (0.42, 0, 0.58, 1), linear — (0, 0, 1, 1). ease həm də transition-timing-function və animation-timing-function üçün susmaya görə dəyərdir.

transition-timing-function: cubic-bezier(0.42, 0, 0.58, 1); /* = ease-in-out */

Hədəfi keçmək: y 0..1 aralığından kənarda

x dəyərləri 0 ilə 1 arasında qalmalıdır, y isə bu aralıqdan çıxa bilər. Onda xassə hədəfi keçib geri qayıdır — cubic-bezier(0.34, 1.56, 0.64, 1) kimi «back» effekti alınır. Bu transform və miqyas üçün əladır, amma opacity kimi öz aralığından çıxa bilməyən xassələr üçün mənasızdır.

transition: transform 500ms cubic-bezier(0.34, 1.56, 0.64, 1);

Harada tətbiq etməli

Əyrini bütün animasiya üçün transition və ya animation-da, ayrı-ayrı hissələr üçün isə @keyframes daxilində yazın. Rəvan 60 kadr/san üçün transform və opacity animasiya edin. Bir cubic-bezier ilə bir neçə sıçrayış etmək olmur — bunun üçün keyframes və ya linear() funksiyasından istifadə edin.

Tez-tez verilən suallar

Niyə x1 və x2 0 ilə 1 arasında olmalıdır?

x oxu zamandır, zaman isə geriyə getmir. x-i 0..1 aralığından kənar olan cubic-bezier() yanlışdır və brauzer bütün bəyannaməni nəzərə almır. Generator x-i sizin üçün məhdudlaşdırır.

y 0-dan kiçik və ya 1-dən böyük ola bilərmi?

Bəli. y 0-dan kiçik olarsa, animasiya əvvəlcə əks istiqamətdə gedir (yellənmə), 1-dən böyük olarsa hədəfi keçir. Bu yalnız belə dəyərləri qəbul edən ədədi xassələrdə, məsələn transform-da görünür.

cubic-bezier() ilə steps() arasında fərq nədir?

cubic-bezier() rəvan, fasiləsiz dəyişiklik verir, steps() isə verilmiş sayda mövqe arasında sıçrayışlarla keçir. Sprayt animasiyası və çap maşını effekti üçün istifadə olunur.

İnterfeys üçün hansı əyrini seçməli?

Adətən ease-out görünən elementlər üçün (sürətli start, yumşaq dayanma), ease-in yox olan elementlər üçün, ease-in-out ekran üzrə yerdəyişmə üçün uyğundur. İnterfeys keçidlərini 150–400 ms daxilində saxlayın.

HTML və CSS kursunda bu mövzu

Digər CSS alətləri

CSS gradient generatoru Linear, radial və conic gradient: rəngləri, bucağı və nöqtələri seçin, hazır kodu kopyalayın. Flexbox generatoru və playground Konteyner və elementlərin flex xassələrini sınayın: istiqamət, düzləmə, boşluq və hazır CSS. CSS Grid generatoru Sütun və sətir ölçülərini seçin, boşluğu və düzləməni tənzimləyin, hazır grid kodunu kopyalayın. CSS box-shadow generatoru Kölgənin yerini, bulanıqlığını, rəngini və laylarını seçin, hazır box-shadow kodunu kopyalayın. SVG animasiya generatoru Forma və effekt seçin — səhifəyə yapışdırmaq üçün hazır SVG və CSS keyframes alın. CSS specificity kalkulyatoru Seçiciləri yazın — (a,b,c) ağırlığını, rəngli təhlilini və hansı qaydanın qalib gəldiyini görün. CSS box model vizualizatoru Content, padding, border və margin-i DevTools tipli sxemdə görün və hazır CSS kodunu alın. CSS transform generatoru Elementi sürüşdürün, fırladın, böyüdün və əyin: ilkin mövqe önizləmədə görünür, kod hazırdır. CSS clamp() kalkulyatoru Min və maks şrift ölçüsünü və ekran enini yazın — axıcı tipoqrafika üçün hazır clamp() alın. Rəng kontrastı yoxlayıcısı (WCAG) Mətn və fon rənginin kontrastını WCAG AA və AAA üzrə yoxlayın, uyğun gəlməyən cütü düzəldin. CSS clip-path generatoru Poliqon, dairə, ellips və kəsilmiş künclər: nöqtələri sürüşdürün və hazır CSS kodunu kopyalayın. CSS Glassmorphism generatoru Mat şüşə effekti: backdrop-filter blur, şəffaflıq, kənar işığı və hazır CSS kodu. CSS border-radius (Blob) generatoru Üzvi formalar və 8 dəyərli border-radius: radiusları sürüşdürün, canlı blob animasiyasını yoxlayın. CSS Stacking Context və z-index vizualizatoru z-index: 9999 niyə işləmir? 3D laylar görünüşü ilə CSS Stacking Context mexanizmini və səbəblərini vizual öyrənin. CSS aspect-ratio və object-fit generatoru Şəkillərin deformasiyasına və CLS sıçrayışlarına son: aspect-ratio proporsiyaları və object-fit fokus nöqtəsi canlı. CSS Filtr Studiyası və generatoru Qrafik redaktorsuz foto effektləri: blur, contrast, hue-rotate, sepia və Instagram üslublu hazır presətlər. OKLCH rəng generatoru və palitrası Göz üçün bərabər parlaqlıq və Display P3 canlı rənglər: OKLCH konvertasiyası, qradasiya və harmonik palitralar. CSS Scroll-driven Animations generatoru JavaScript olmadan skroll animasiyaları: animation-timeline scroll() və view() ilə oxuma lenti və kartların açılması. CSS Container Queries (@container) generatoru Media sorğularına son: komponent ekran ölçüsünə deyil, öz konteynerinin eninə uyğunlaşır. Canlı ölçü dəyişmə və @container qaydaları.
WhatsApp