记录:Vue3+ts 粒子特效

  1. 安装依赖
    npm install particles.vue3 --save
    npm i tsparticles

  2. src目录下创建文件名为 env.d.ts声明文件,并写入

    declare module 'particles.vue3';
    
  3. 在main.ts中引入并使用

    import Particles from 'particles.vue3'
    createApp(App)
      .use(Particles)
      .mount('#app')
    


     

  4. 页面中直接使用,最好设置定位重叠

    <template>
        <div style="position: absolute; left: 0; top: 0; z-index: 0">
          <Particles
            id="tsparticles"
            :particlesInit="particlesInit"
            :particlesLoaded="particlesLoaded"
            :options="options"
          />
        </div>
    </template>
    
    <script setup lang="ts">
    //引入vue
    import { LockOutlined, CrownOutlined } from "@ant-design/icons-vue";
    import { reactive } from "vue";
    import { loadFull } from "tsparticles";
    import type { Engine } from "tsparticles-engine";
    
    const particlesInit = async (engine: Engine) => {
      await loadFull(engine);
    };
    
    const particlesLoaded = async (container: any) => {
      console.log("Particles container loaded", container);
    };
    const options = reactive({
      background: {
        color: {
          value: "#000", // 粒子颜色
        },
      },
      fpsLimit: 60,
      interactivity: {
        events: {
          onClick: {
            enable: true,
            mode: "push", // 可用的click模式有: "push", "remove", "repulse", "bubble"。
          },
          onHover: {
            enable: true,
            mode: "repulse", // 可用的hover模式有: "grab", "repulse", "bubble"。
          },
          resize: true,
        },
        modes: {
          bubble: {
            distance: 400,
            duration: 2,
            opacity: 0.8,
            size: 40,
          },
          push: {
            quantity: 4,
          },
          repulse: {
            distance: 200,
            duration: 0.4,
          },
        },
      },
      particles: {
        color: {
          value: "#ffffff",
        },
        links: {
          color: "#ffffff", // '#dedede'。线条颜色。
          distance: 150, // 线条长度
          enable: true, // 是否有线条
          opacity: 0.5, // 线条透明度。
          width: 1, // 线条宽度。
        },
        collisions: {
          enable: false,
        },
        move: {
          direction: "none",
          enable: true,
          outMode: "bounce",
          random: false,
          speed: 2, // 粒子运动速度。
          straight: false,
        },
        number: {
          density: {
            enable: true,
            area: 800,
          },
          value: 80, // 粒子数量。
        },
        opacity: {
          value: 0.5, // 粒子透明度。
        },
        shape: {
          type: "circle", // 可用的粒子外观类型有:"circle","edge","triangle", "polygon","star"
        },
        size: {
          random: true,
          value: 2, // 粒子大小。
        },
      },
      detectRetina: true,
    });
    </script>

    运行即可,粒子可根据自己调整。

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值