如何为<details>元素添加动画

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 提供适用于旅程每个阶段的云产品。立即开始使用 200 美元的免费积分!

这是一个来自 Moritz Gießmann 的 简单演示,它展示了如何为<details>元素的三角形添加动画,这个三角形是 提示,它告诉人们这个东西可以打开。为它添加动画,也是一种提示,告诉人们这个东西正在打开

技巧?

  1. 关闭默认的三角形:details summary::-webkit-details-marker { display:none; }。你不能为它添加动画。
  2. 使用 CSS 边框技巧伪元素 创建一个替代的三角形。
  3. 在打开状态时为新三角形添加动画:details[open] > summary::before { transform: rotate(90deg); }

这只会为三角形添加动画。里面的内容仍然“突然”打开。想让它更平滑吗?Louis Hoebregts 的 “如何使用 WAAPI 为<details>元素添加动画” 涵盖了这一点。

这里有一个我将它们结合在一起的分支,因为

我看到 Moritz 也在<summary>上添加了 cursor: pointer;就像 Greg Gibson 建议的那样.