Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> CSS

การใช้งานฟังก์ชัน cubic-bezier() ใน CSS

ฟังก์ชัน cubic-bezier() ใช้กำหนดฟังก์ชันการเร่งช้าของการเปลี่ยนแปลง (transition timing function) ด้วยเส้นโค้ง Bézier ระดับ 3 (Cubic Bézier Curve) ซึ่งให้ความควบคุมที่ละเอียดกว่าคีย์เวิร์ดสำเร็จรูป เช่น ease, linear, ease-in, ease-out, ease-in-out

รูปแบบไวยากรณ์

cubic-bezier(x1, y1, x2, y2)
  • จุดควบคุมจุดที่ 1: (x1, y1) โดย x1 ต้องอยู่ระหว่าง 0 ถึง 1
  • จุดควบคุมจุดที่ 2: (x2, y2) โดย x2 ต้องอยู่ระหว่าง 0 ถึง 1
  • จุดเริ่มต้นคือ (0,0) และจุดสิ้นสุดคือ (1,1) เสมอ

ตัวอย่างโค้ด

<!DOCTYPE html>
<html>
<head>
  <style>
    div {
      width: 100px;
      height: 100px;
      background: yellow;
      transition: width 3s;
      transition-timing-function: cubic-bezier(0.3, 0.3, 2.0, 0.9);
    }
    div:hover {
      width: 200px;
    }
  </style>
</head>
<body>
  <p>Hover over the below container:</p>
  <div></div>
</body>
</html>

คำอธิบาย: ในตัวอย่าง ใช้ค่า cubic-bezier(0.3, 0.3, 2.0, 0.9) ซึ่ง y2 = 2.0 เกินขอบเขต 1 ทำให้เกิดเอฟเฟกต์ "overshoot" (เกินเป้าหมายแล้วกลับมา) หรือ "bounce effect" คุณสามารถทดลองสร้างค่าของตัวเองได้ที่ cubic-bezier.com