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

การทำ Multiple Transitions ด้วย CSS3

Multiple Transitions: Transition หลาย Property พร้อมกัน

ใช้ transition shorthand ระบุหลาย property คั่นด้วย comma แต่ละ property มี duration/timing/delay แยกกันได้

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

<!DOCTYPE html>
<html>
<head>
  <style>
    .container div {
      width: 300px; height: 100px; border-radius: 1px;
      background: rgb(25, 0, 255); border: 2px solid red;
      transition: width 2s, border-radius 2s; /* 2 transitions */
    }
    .container:hover div {
      width: 100px; border-radius: 50%;
    }
  </style>
</head>
<body>
  <h1>Multiple Transitions Example</h1>
  <div class="container"><div></div></div>
  <h2>Hover เพื่อลดความกว้างและเปลี่ยนเป็นวงกลม</h2>
</body>
</html>

การทำงาน

  • Hover → width: 300→100px (2s) + border-radius: 1px→50% (2s) พร้อมกัน
  • Unhover → กลับสถานะเดิม ด้วย timing เดียวกัน

Staggered Transitions (สลับช่วงเวลา)

.card:hover .icon { transform: rotate(90deg); transition: transform 0.3s 0s; }
.card:hover .text { opacity: 1; transform: translateY(0); transition: all 0.3s 0.1s; }
.card:hover .btn { opacity: 1; transform: scale(1); transition: all 0.3s 0.2s; }

Transition กับ Transform/Opacity (Performance)

ใช้ transform (translate, scale, rotate) และ opacity หลัก – GPU accelerated, ไม่ trigger layout/repaint

Transition Events (JavaScript)

element.addEventListener('transitionend', (e) => {
  console.log('Transition ended:', e.propertyName);
});

ใช้ trigger action หลัง animation จบ (เช่น remove element หลัง fade out)