ข้ามไปยังเนื้อหาหลัก

สร้าง CSS Cubic-Bezier Easing ฟรี

ออกแบบ CSS easing curve โดยลาก control point ดูตัวอย่างการเคลื่อนไหวสดๆ และคัดลอกค่า cubic-bezier() มี preset overshoot/bounce

ใช้งานได้แบบออฟไลน์เมื่อโหลดแล้ว

ลากจุดจับสีเขียวและชมพูเพื่อปรับรูปโค้ง

จุดควบคุม
ตัวอย่างการเคลื่อนไหว
การเปลี่ยนแปลงความกว้าง
ค่า CSS
transition-timing-function: cubic-bezier(0.25, 0.1, 0.25, 1);

ค่าสำเร็จรูป

จุดจับสีชมพูและเขียวสามารถดึงขึ้นหรือลงเกินกล่อง (Y เกิน 0-1) เพื่อสร้างเอฟเฟกต์ overshoot/กระดอน เช่น back-out และ anticipate ส่วน X อยู่ในช่วง 0-1 (เวลาไม่สามารถย้อนกลับได้)

การใช้งานทั่วไป

  • การผ่านผ่าน CSS แบบกำหนดเองออกแบบการทำให้เรียบลื่นที่รู้สึกเป็นธรรมชาติสำหรับเอฟเฟกต์ hover เมนู และการเปลี่ยน UI
  • แอนิเมชันเด้งและเกินจำนวนสร้างการเคลื่อนไหวของสปริง/เด้งที่สนุกสนานโดยการดึงจุดควบคุมให้ยาวเกินกำหนด
  • Easing สำหรับแอนิเมชัน @keyframesเลือก animation-timing-function ที่ถูกต้องสำหรับแอนิเมชัน CSS keyframe
  • ค่า Easing สำหรับไลบรารี JS Animationรับค่า cubic-bezier สำหรับ GSAP, Framer Motion, anime.js และอื่น ๆ
  • เข้าใจวิธีการทำงาน Easingดูความสัมพันธ์ระหว่างเส้นโค้ง bezier และการเคลื่อนไหวที่สร้างขึ้น

วิธีการทำงาน

ตัวแก้ไขสร้างในเบราว์เซอร์ทั้งหมดด้วย React state และ SVG — ไม่มีไลบรารีจัดการคณิตศาสตร์เส้นโค้ง จุดควบคุมที่ลากได้สองจุดกำหนดเส้นทาง SVG แบบ cubic Bezier และเอนจินแอนิเมชัน CSS ของเบราว์เซอร์เองแสดงตัวอย่างการเคลื่อนไหวโดยแทรกค่า cubic-bezier() ที่ได้ลงในกฎ @keyframes โดยตรง

  1. 1
    ลากหรือพิมพ์จุดควบคุม
    ตัวจับสองตัว (P1 สีเขียวอมฟ้า P2 สีกุหลาบ) อยู่บน canvas SVG การลากใช้ Pointer Events API กับ setPointerCapture ตัวจับจึงติดตามนิ้วหรือเคอร์เซอร์แม้อยู่นอกขอบ SVG คุณยังขยับตัวจับด้วยปุ่มลูกศร หรือพิมพ์ค่าที่แน่นอนในช่องตัวเลข x1/y1/x2/y2 ได้
  2. 2
    SVG วาดเส้นโค้งแบบเรียลไทม์
    เส้นโค้งเป็นองค์ประกอบ SVG <path> เดียวที่คำสั่ง C (cubic Bezier) ถูกคำนวณใหม่จากพิกัดจุดควบคุมทั้งสี่ทุกครั้งที่ state อัปเดต ไม่มี canvas ไม่มีไลบรารีภายนอก — ตัวเรนเดอร์ SVG ของเบราว์เซอร์วาดเส้นทางโดยตรง
  3. 3
    เอนจิน CSS ของเบราว์เซอร์แสดงตัวอย่าง easing
    แอนิเมชันสดสามแบบ (จุดเลื่อน การเปลี่ยนความกว้าง และการปรับขนาด) รัน CSS @keyframes โดยแทรกค่า cubic-bezier() แบบ inline เอนจินแอนิเมชันของเบราว์เซอร์เองตีความเส้นโค้ง สิ่งที่คุณเห็นจึงตรงกับที่ CSS ในโปรดักชันจะให้ผล
  4. 4
    คัดลอกโค้ดตามไวยากรณ์ของเฟรมเวิร์กคุณ
    แท็บจัดรูปแบบตัวเลขสี่ตัวเดียวกันเป็น CSS transition-timing-function คลาส Tailwind แบบค่ากำหนดเอง อาร์เรย์ ease ของ Framer Motion หรือสตริง easing ของ anime.js โค้ดถูกเขียนลงคลิปบอร์ดด้วย navigator.clipboard เส้นโค้งยังถูกเข้ารหัสใน hash ของ URL (#b=x1,y1,x2,y2) เพื่อให้แชร์หรือบุ๊กมาร์กได้

เครื่องมือที่เกี่ยวข้อง

คำถามที่พบบ่อย