CSS Anchor 交互注释

使用 CSS Anchor Positioning 创建产品功能标注和代码注释,让内容更具交互性。

预览
annotations.demo.tsx
产品功能标注
超视网膜 XDR 显示屏
6.9 英寸 OLED 全面屏,支持 ProMotion 自适应刷新率技术,峰值亮度 2000 尼特
专业级相机系统
4800 万像素主摄 + 超广角 + 5 倍长焦,支持 ProRAW 和 ProRes 视频拍摄
A18 Pro 芯片
最新一代仿生芯片,6 核 CPU + 6 核 GPU + 16 核神经网络引擎
全天候续航
最长可达 29 小时视频播放,支持 MagSafe 15W 无线快充
点击标注点或下方按钮查看功能详情
代码行注释
greeting.js
1const greeting = (name) => {
箭头函数定义,接收 name 参数
2 const time = new Date().getHours();
获取当前小时数(0-23)
3 let message = '';
初始化问候语变量
4
5 if (time < 12) {
判断是否为上午
6 message = 'Good morning';
7 } else if (time < 18) {
判断是否为下午
8 message = 'Good afternoon';
9 } else {
10 message = 'Good evening';
11 }
12
13 return `${message}, ${name}!`;
模板字符串拼接问候语
14};
点击高亮行查看代码注释。注释框使用 CSS Anchor 精确定位到对应代码行。

核心特性

1. 产品功能标注

在产品图片上添加交互式标注点,点击后显示详细说明:

  • 标注点使用 ringanimate-ping 实现呼吸效果
  • 根据标注点位置(左/右)自动调整说明框方向
  • 连接线精确指向标注点位置
style={{
  positionAnchor: `--anchor-point-${id}`,
  ...(isOnLeft
    ? { left: 'anchor(right)', translate: '16px -50%' }
    : { right: 'anchor(left)', translate: '-16px -50%' }
  ),
  top: 'anchor(center)',
  positionTryFallbacks: 'flip-inline, flip-block',
}}

2. 代码行注释

为代码编辑器添加交互式注释功能:

  • 点击可注释的代码行显示说明
  • 注释框定位到代码行右侧
  • 三角形箭头指向对应代码行
  • 支持多行同时激活
style={{
  positionAnchor: `--anchor-code-${lineNum}`,
  left: 'anchor(right)',
  top: 'anchor(center)',
  translate: '18px -50%',
  positionTryFallbacks: 'flip-inline',
}}

3. 颜色系统

使用不同颜色区分不同类型的标注:

  • 蓝色:显示屏相关
  • 绿色:相机功能
  • 黄色:性能芯片
  • 红色:电池续航

应用场景

  • 产品展示页面:为产品图片添加功能标注
  • 在线教程:为代码添加分步说明
  • 技术文档:为示例代码添加详细注释
  • 设计评审:为设计稿添加批注