遮罩动画

使用剪切遮罩实现时尚的显示和隐藏效果

遮罩动画

遮罩(Mask)动画使用剪切遮罩创建时尚的显示和隐藏效果,元素以圆形、椭圆形或方形的形状出现或消失。它提供了类似 Material Design 涟漪效果的优雅过渡。

SSGOI

Options

1.5

使用方法

import { transition } from '@ssgoi/react';
import { mask } from '@ssgoi/react/transitions';

function Component() {
  return (
    <div ref={transition({
      key: 'my-element',
      ...mask()
    })}>
      遮罩效果!
    </div>
  );
}

选项

interface MaskOptions {
  shape?: 'circle' | 'ellipse' | 'square';  // 遮罩形状(默认:'circle')
  origin?: 'center' | 'top' | 'bottom' | 'left' | 'right' | 
           'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';  // 起始位置(默认:'center')
  scale?: number;     // 遮罩大小比例(默认:1.5)
  fade?: boolean;     // 同时应用淡入淡出效果(默认:false)
  spring?: {
    stiffness?: number;  // 弹簧刚度(默认:300)
    damping?: number;    // 阻尼系数(默认:30)
  };
}

使用示例

// 从中心开始的圆形遮罩
mask()

// 从左上角开始的圆形遮罩
mask({ origin: 'top-left' })

// 椭圆形遮罩
mask({ shape: 'ellipse' })

// 方形遮罩
mask({ shape: 'square', origin: 'center' })

// 带淡入淡出效果
mask({ fade: true })

// 更大范围的遮罩
mask({ scale: 2 })

// 平滑动画
mask({ spring: { stiffness: 100, damping: 20 } })

应用场景

卡片涟漪效果

// 从点击位置开始的涟漪效果
mask({ 
  origin: 'top-left',  // 根据点击位置动态设置
  scale: 2,
  spring: { stiffness: 400, damping: 35 }
})

模态窗口打开效果

// 从按钮位置展开的模态窗口
mask({
  origin: 'bottom-right',  // 按钮位置
  scale: 3,
  fade: true
})

画廊图片过渡

// 从图片中心展开
mask({
  shape: 'circle',
  origin: 'center',
  scale: 1.5,
  spring: { stiffness: 200, damping: 25 }
})