ฟังก์ชัน 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