普通文組 2.5

30天挑戰:「CSS雙面卡片與動畫」 相關筆記

總結

僅使用transform來做出「滑鼠 hover 後,卡片出現翻頁效果」的動畫

See the Pen 2-side flip card by Charlie (@Charlie7779) on CodePen.

筆記

HTML

  • 相對單純,使用一個.card容器包裹卡片的兩面內容card--frontcard--back

CSS

  • 第 2 行:設定position: relative;.card成為card--frontcard--back的定位點
  • 第 8 行:perspective: 9999px;讓卡片在翻動時,在視覺上不會離使用者太近;可參考下圖兩種數值的呈現結果 perspective 99px perspective 99999px
  • 第 16 行:[class^="card--"]代表選取所有.card下並 class 開頭是card--的元素
  • 第 25 行:backface-visibility: hidden;讓卡片內容不穿透到另外一面
  • 第 43 行:transform: rotateY(180deg);代表卡片背面一開始就已經進入「被翻面」的狀態
  • 第 46-55 行:hover 後卡片本身在 Y 軸提高 4px(transform: translateY(-4px);)、卡片正面翻轉 180 度(transform: rotateY(180deg);),而卡片背面則轉回正面(transform: rotateY(360deg);

參考文件