jparticles
Version:
A lightweight, efficient and easy-to-use Canvas library for building some cool particle effects.
63 lines (46 loc) • 1.81 kB
TypeScript
import type { CommonConfig } from './common-config'
import type { ICanvasImageSource } from './utility-types'
export interface ComOptions {
// 是否填充背景色,设置为 false 相关值无效
fill: boolean | boolean[]
// 填充的背景色,当 fill 设置为 true 时生效
fillColor: string | string[]
// 是否绘制边框,设置为 false 相关值无效
line: boolean | boolean[]
// 边框颜色,当 line 设置为 true 时生效
lineColor: string | string[]
// 边框宽度,空数组则随机 [.2, 2) 的宽度。
lineWidth: number | number[]
// 波纹横向偏移值,距离 Canvas 左边缘的偏移值
// (0, 1) 表示容器宽度的倍数,0 & [1, +∞) 表示具体数值
offsetLeft: number | number[]
// 波纹纵向偏移值,波纹中点距离 Canvas 顶部的距离
// (0, 1) 表示容器高度的倍数,0 & [1, +∞) 表示具体数值
offsetTop: number | number[]
// 波峰高度,(0, 1) 表示容器高度的倍数,0 & [1, +∞) 表示具体数值
crestHeight: number | number[]
// 波峰个数,即正弦周期个数,默认随机 [1, 0.2 * 容器宽度)
crestCount: number | number[]
// 运动速度,默认随机 [.1, .4)
speed: number | number[]
// 遮罩:图片 URL 地址、 Base64 格式、canvas 图像源
mask?: string | ICanvasImageSource
// 遮罩模式,默认 normal
maskMode?: 'normal' | 'ghost'
}
export interface Options extends ComOptions, Partial<CommonConfig> {
// 波纹个数
num: number
}
export type StdOptions = {
[K in keyof ComOptions]: K extends 'maskMode' | 'mask'
? ComOptions[K]
: Extract<ComOptions[K], unknown[]>
}
export interface IElement {
// x 坐标
x: number
// y 坐标
y: number
}
export type StrNumBool = string | number | boolean