1.2.3 • Published 10 months ago

seyu-vfx v1.2.3

Weekly downloads
-
License
ISC
Repository
-
Last release
10 months ago

Seyu VFX

简介

基于 Vue3 将一些网页特效封装成组件,可以更加灵活的使用他们。

前往 Gitee 仓库

前往文档

使用介绍

  • 全局导入
import { createApp } from 'vue'
// 导入组件库
import seyuVfx from "seyu-vfx"

const app = createApp(App)
//注册组件库
app.use(seyuVfx)

app.mount('#app')
  • 按需导入
import { FloatDown } from 'seyu-vfx'
  • 请在合适的位置导入样式
import "seyu-vfx/src/style.css"

组件文档

FloatDown

可以理解为樱花飘落特效的组件但这里可以自定义一些效果。使用方式也很简单:

<FloatDown>
  <div>这里是内容哦</div>
</FloatDown>

属性

  • imgList: Array,自定义飘落图片,默认是樱花图案;
    • 接收一个数组,组件中使用 new Image() 加载数组的每一项,所以可以是图片路径也可以是其它。
  • minWidth: Number,图片最小宽度,默认 30,单位像素,不能小于零;
    • 组件中会随机设置图片的宽度,但不会低于该属性;
    • 无需设置最大宽度,图片的最大宽度为最小宽度的1.5倍;
  • minHeight: Number,图片最小高度,默认 25,与 minWidth 类似;
  • count: Number,生成飘落图片的数量,默认 10,不能小于零;
  • xSpeed: Number,横向移动速度,默认 1,不能小于零,值越大移动越快;
  • ySpeed: Number,纵向移动速度,默认 1,不能小于零,值越大移动越快;
  • direction: 'left' | 'right',飘落方向,默认 'left';
  • disableRotate: Boolean,禁止旋转,默认 false,飘落的图片默认会自动旋转,设置该属性可以禁用旋转。

插槽

  • default 默认插槽,飘落的图片会显示在插槽内容之上,若想让部分内容在飘落图片之上可以将 css 的 z-index 的值设置高于 50,
  • above 与默认插槽相比,飘落的图片会在该插槽下方

方法

  • start: (reset?: Boolean) => void
    • 开始飘落动画;
    • 参数 reset,是否重置当前页面中飘落的图片
  • stop: (clear?: Boolean) => void
    • 停止飘落动画;
    • 参数 clear,是否清除页面中飘落的图片

CompassClock

罗盘时钟组件。 Tip: 组件提供日期格式、间距、字体大小等设置,请根据使用时的放置位置进行大小调整,若空间不足会导致内容重合,反之会留出大量空白。

<CompassClock />

属性

  • format: Array,需要显示的日期,数组项类型为字符串,包含以下内容:
    • Year: 显示年份;
    • Month: 显示月份;
    • Day: 显示日;
    • Week: 显示周;
    • Hour: 显示小时;
    • Minute: 显示分钟;
    • Seconds: 显示秒。
    • 以上项除 Week 外均为中文数字格式,若需要使用阿拉伯数字格式请将首字母改为小写即可;
    • Week 显示的格式为 “星期X”,week 显示的格式为:“周X”;
    • 除 Year 外其它日期格式均可存在多个,不过应该不会这么做;
    • 默认将日期的中文数字格式全部显示。
  • gap: Number,每一圈日期的间距,默认 10,单位像素;
  • fontSize: Number,字体大小,默认 14,单位像素;
  • color: String,字体颜色,默认 #000000;
  • highlightColor: String,当前时间的高亮颜色,默认 #09c。

方法

  • start: () => void
    • 开启定时器
  • stop: () => void
    • 关闭定时器

CodeRain

让文字在组件区域内随机位置生成,然后快速落下,如同下雨一般。

<CodeRain />

属性

  • bgImg: String,背景图片,值如同 img 标签的 src 值(动态图会变成静态背景);
  • bgColor: String,背景颜色,在背景图片不生效或没有传递背景图片时用来当做背景的颜色,默认 #000000;
  • textMsg: String,文字内容,默认 rain;
  • mode: 'split' | 'level',文本显示的模式,默认 split:
    • split: 分割文字,如:rain =》 r \ a \ i \ n;
    • level: 水平绘制文字,将文字内容水平绘制然后一同落下;
  • textColor: 'random' | Array,文字颜色,默认 random:
    • random: 随机生成一个颜色值;
    • Array: 选择想要出现的文字颜色将其组成数组传递给组件,在绘制文字时会随机使用其中的一个颜色作为字体颜色;
  • fontSize: String,字体大小,默认 16px;
  • speed: Number,下落速度,speed 值越大,下落速度越慢,且 speed 必须大于 0,默认 1 (speed 值的大小对动画流畅有一定影响)。

插槽

  • default 默认插槽,在组件范围内需要显示的内容,包裹插槽的元素使用绝对定位,宽高 100%

方法

  • start: () => void
    • 开始动画
  • stop: () => void
    • 停止动画

RotateCards

3D 旋转卡片

<RotateCards :data="[1,2,3,4,5,6,7,8,9]">
  <template #default="{ item }">
    <div>
      {{item}}
    </div>
  </template>
</RotateCards>

属性

  • data: Array,必须,数据源;
  • direction: 'left' | 'right',旋转方向,默认 'left';
  • duration: Number,旋转一周所需时间,单位毫秒,默认 10000;
  • radius: String | Number,卡片项到中心的距离,默认 '40%';
  • tilt: Number,所有卡片所围绕形成的面的倾斜角度,单位 deg,默认 -10;
  • itemClass: String,给包裹插槽的元素添加类名,也可以选择直接使用组件原有的类名设置样式,但请不要设置关于定位的样式。

插槽

  • default 默认插槽,根据 data 数组长度循环渲染插槽内容,可接收参数 item 代表数组中的当前项

方法

  • rest: () => void
    • 重置动画
  • start: () => void
    • 开始动画
  • stop: () => void
    • 停止动画

FireWorks

烟花

<FireWorks />

属性

  • bgImg: String,背景图片,值如同 img 标签的 src 值(动态图会变成静态背景);
  • bgColor: String,背景颜色,在背景图片不生效或没有传递背景图片时用来当做背景的颜色,默认 #000000;
  • riseRadius: Number,上升烟花半径,必须大于 0,默认值 2;
  • riseColor: 'random' | Array,上升烟花颜色,默认 random:
    • random: 随机生成一个颜色值;
    • Array: 选择想要出现的文字颜色将其组成数组传递给组件,在绘制文字时会随机使用其中的一个颜色作为字体颜色;
  • riseSpeed: Number,上升烟花速度,必须大于 0,默认值 2;
  • riseCount: Number,上升烟花数量,必须大于 0,默认值 5;
  • diffuseRadius: Number,扩散弹片半径,必须大于 0,默认值 2;
  • diffuseColor: 'random' | Array,扩散弹片颜色,默认 random:
    • random: 随机生成一个颜色值;
    • Array: 选择想要出现的文字颜色将其组成数组传递给组件,在绘制文字时会随机使用其中的一个颜色作为字体颜色;
  • autoFire: Boolean,自动发射,默认 true;
  • shape: Array,烟花爆炸形状,在数组中随机选择一种形状,默认在全部形状中选择:
    • irregularity: 不规则形状;
    • circle: 圆形;

插槽

  • default 默认插槽,在组件范围内需要显示的内容,包裹插槽的元素使用绝对定位,宽高 100%

方法

  • fire: (ammo) => void
    • 发射烟花
  • createShards: (shard[]) => void
    • 创建爆炸弹片组
  • getShape: (option: {x: number, y: number}, shapes?: Array) => shard[]
    • 获取内置形状对应的弹片数组
// 类型
/* tip: ammo 中的 y 在绘制时是画布高度减去当前 y,callback 接收的 y 也是画布高度减去 y 之后的值,
* 所以将 callback 接收的位置直接用在 shard 就可以在结束位置绘制爆炸动画
* */
type ammo = {
  x: number, // 起始坐标 
  y: number, // 起始坐标
  end: number, // 结束位置距离起始坐标距离 
  radius: number, // 半径 
  color: string, // 颜色 
  speed: number, // 速度 
  callback: ({x: number, y: number}) => void // 到达结束位置回调
}
type shard = {
  x: number, // 初始位置
  y: number, // 初始位置
  color: string, // 颜色
  radius?: number, // 半径,默认 1
  cross?: number, // 横向偏移,默认随机 -1 ~ 1
  vertical?: number, // 纵向偏移,默认随机 -1 ~ 1
  topple?: number, // 下坠加速度,默认 0.01
  alpha?: number, // 透明度,默认 1
  decay?: number, // 透明度减少速度,默认 0.01
  customDraw?: ({x,y,color}, canvasContext) => void // 自定义绘制方法,canvasContext 为画布对象
}

本次更新内容

  • 修复 FireWorks 组件自动发射功能在缓存路由失活时会异常调用
结语

该组件库的作者只是一个初出茅庐的小前端,若在公共项目使用本库请三思。

1.2.3

10 months ago

1.2.2

10 months ago

1.2.1

11 months ago

1.2.0

1 year ago

1.1.5

1 year ago

1.1.4

1 year ago

1.1.3

1 year ago

1.1.2

1 year ago

1.1.1

1 year ago

1.1.0

1 year ago

1.0.7

1 year ago

1.0.6

1 year ago

1.0.5

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.4

1 year ago

1.0.3

1 year ago

1.0.0

2 years ago