Skip to content
On this page

Particle 粒子动效

该组件是将图片通过canvas转化成粒子动效。

基础用法

widthheight属性定义canvas的宽高,src属性设置图片地址

<template>
  <FDynamicParticle :width="400" :height="400" src="/fast-dataview-ui/tree.png"></FDynamicParticle>
</template>

切换图片

点击图片,调用toggleImg方法,切换图片

<template>
  <div>
    <div class="canvas-wrap">
      <FDynamicParticle ref="dynamicParticle" :width="400" :height="400" :src="img"></FDynamicParticle>
    </div>
    <div class="img-list">
      <img v-for="(item,index) in imgList" class="img-list__item" :src="item" @click="clickImg(item)">
    </div>
  </div>
</template>
<script lang="ts" setup>
import { ref,reactive } from 'vue';
const dynamicParticle = ref()
let img = ref('/fast-dataview-ui/sun.png')
 
const imgList = reactive([
  '/fast-dataview-ui/sun.png',
  '/fast-dataview-ui/rain.png',
  '/fast-dataview-ui/thunder.png',
  '/fast-dataview-ui/snowflake.png',
])
const clickImg = (src:string) =>{
  dynamicParticle.value.toggleImg(src)
}
</script>
<style>
.canvas-wrap{
  display:flex;
  justify-content: center;
  align-items: center;
}
.img-list{
  display:flex;
  width:100%;
}
.img-list__item{
  width:25%;
  border:1px solid white;
  cursor: pointer;
  box-sizing: border-box;
}
.img-list__item:not(:last-child) {
  border-right-width: 0;
}

</style>

参数

参数名说明类型可选值默认值
widthcanvas的宽度number-400
heightcanvas高度number-400
radius粒子半径number-1.2
strength吸引和排斥的力度number-2
src图片的路径string-

方法

方法名类型说明
toggleImg(src:string) => void用于切换图片,参数是图片的地址