vue3+vite使用particles.js

news2025/2/22 23:48:50

上效果:

在这里插入图片描述


1、安装vue3-particles

注意: 这里不能直接安装2.0以上的版本,否则界面无法出来。至于根本原因目前还没查到

# 通过以下命令可以发现当前所具有的版本
$ pnpm view vue3-particles versions
[
  '1.42.1', '1.42.2', '1.42.3', '1.42.4',
  '1.43.0', '1.43.1', '2.0.3',  '2.0.4',
  '2.0.5',  '2.0.6',  '2.1.0',  '2.1.1',
  '2.1.2',  '2.1.3',  '2.1.4',  '2.2.0',
  '2.2.1',  '2.2.2',  '2.2.3',  '2.2.4',
  '2.3.0',  '2.3.1',  '2.3.2',  '2.3.3',
  '2.4.0',  '2.5.0',  '2.5.1',  '2.5.2',

# 我们选择安装1.0的最高版本
$ pnpm install vue3-particles@^1.43.1

2、引入vue3-particles

src/main.ts

import Particles from "vue3-particles";

app.use(Particles)

3、在所需的vue文件中使用

src/views/demo.vue

<script lang="ts" setup>

import { particles } from './particles.js'

</script>

<template>
    <div id="app">
      <Particles id="tsparticles" class="login__particles" :options="particles" />
    </div>
</template>

这里的option我是单独用一个js文件去写,避免配置太长,导致界面太难看了,当然你们也可以直接写在script标签里面

src/views/particles.js

export const particles = {
  autoPlay: true,
  background: {
    color: {
      value: '#fff'
    },
    image: '',
    position: '50% 50%',
    repeat: 'no-repeat',
    size: 'cover',
    opacity: 1
  },
  backgroundMask: {
    composite: 'destination-out',
    cover: {
      color: {
        value: '#999'
      },
      opacity: 1
    },
    enable: false
  },
  defaultThemes: [],
  delay: 0,
  fullScreen: {
    enable: true,
    zIndex: 1
  },
  detectRetina: true,
  duration: 0,
  fpsLimit: 120,
  interactivity: {
    detectsOn: 'window',
    events: {
      onClick: {
        enable: false,
        mode: 'push'
      },
      onDiv: {
        selectors: [],
        enable: false,
        mode: [],
        type: 'circle'
      },
      onHover: {
        enable: true,
        mode: 'grab',
        parallax: {
          enable: true,
          force: 60,
          smooth: 10
        }
      },
      resize: {
        delay: 0.5,
        enable: true
      }
    },
    modes: {
      attract: {
        distance: 200,
        duration: 0.4,
        easing: 'ease-out-quad',
        factor: 1,
        maxSpeed: 50,
        speed: 1
      },
      bounce: {
        distance: 200
      },
      bubble: {
        distance: 400,
        duration: 2,
        mix: false,
        opacity: 0.8,
        size: 40,
        divs: {
          distance: 200,
          duration: 0.4,
          mix: false,
          selectors: []
        }
      },
      connect: {
        distance: 80,
        links: {
          opacity: 0.5
        },
        radius: 60
      },
      grab: {
        distance: 400,
        links: {
          blink: false,
          consent: false,
          opacity: 1
        }
      },
      push: {
        default: true,
        groups: [],
        quantity: 4
      },
      remove: {
        quantity: 2
      },
      repulse: {
        distance: 200,
        duration: 0.4,
        factor: 100,
        speed: 1,
        maxSpeed: 50,
        easing: 'ease-out-quad',
        divs: {
          distance: 200,
          duration: 0.4,
          factor: 100,
          speed: 1,
          maxSpeed: 50,
          easing: 'ease-out-quad',
          selectors: []
        }
      },
      slow: {
        factor: 3,
        radius: 200
      },
      trail: {
        delay: 1,
        pauseOnStop: false,
        quantity: 1
      },
      light: {
        area: {
          gradient: {
            start: {
              value: '#999'
            },
            stop: {
              value: '#000000'
            }
          },
          radius: 1000
        },
        shadow: {
          color: {
            value: '#000000'
          },
          length: 2000 
        }
      }
    }
  },
  manualParticles: [],
  particles: {
    line_linked: {
      enable: true,
      distance: 50
    },
    bounce: {
      horizontal: {
        random: {
          enable: false,
          minimumValue: 0.1
        },
        value: 1
      },
      vertical: {
        random: {
          enable: false,
          minimumValue: 0.1
        },
        value: 1
      }
    },
    collisions: {
      absorb: {
        speed: 2
      },
      bounce: {
        horizontal: {
          random: {
            enable: false,
            minimumValue: 0.1
          },
          value: 1
        },
        vertical: {
          random: {
            enable: false,
            minimumValue: 0.1
          },
          value: 1
        }
      },
      enable: false,
      maxSpeed: 50,
      mode: 'bounce',
      overlap: {
        enable: true,
        retries: 0
      }
    },
    color: {
      value: '#999',
      animation: {
        h: {
          count: 0,
          enable: false,
          offset: 0,
          speed: 1,
          delay: 0,
          decay: 0,
          sync: true
        },
        s: {
          count: 0,
          enable: false,
          offset: 0,
          speed: 1,
          delay: 0,
          decay: 0,
          sync: true
        },
        l: {
          count: 0,
          enable: false,
          offset: 0,
          speed: 1,
          delay: 0,
          decay: 0,
          sync: true
        }
      }
    },
    groups: [],
    move: {
      angle: {
        offset: 0,
        value: 90
      },
      attract: {
        distance: 200,
        enable: false,
        rotate: {
          x: 600,
          y: 1200
        }
      },
      center: {
        x: 50,
        y: 50,
        mode: 'percent',
        radius: 0
      },
      decay: 0,
      distance: [],
      direction: 'none',
      drift: 0,
      enable: true,
      gravity: {
        acceleration: 9.81,
        enable: false,
        inverse: false,
        maxSpeed: 50
      },
      path: {
        clamp: true,
        delay: {
          random: {
            enable: false,
            minimumValue: 0
          },
          value: 0
        },
        enable: false,
        options: []
      },
      outModes: {
        default: 'out',
        bottom: 'out',
        left: 'out',
        right: 'out',
        top: 'out'
      },
      random: false,
      size: false,
      speed: 2,
      spin: {
        acceleration: 0,
        enable: false
      },
      straight: false,
      trail: {
        enable: false,
        length: 10,
        fill: []
      },
      vibrate: false,
      warp: false
    },
    number: {
      density: {
        enable: true,
        width: 1920,
        height: 1080
      },
      limit: 0,
      value: 100
    },
    opacity: {
      random: {
        enable: true,
        minimumValue: 0.1
      },
      value: {
        min: 0.1,
        max: 0.5
      },
      animation: {
        count: 0,
        enable: true,
        speed: 3,
        decay: 0,
        delay: 0,
        sync: false,
        mode: 'auto',
        startValue: 'random',
        destroy: 'none',
        minimumValue: 0.1
      }
    },
    reduceDuplicates: false,
    shadow: {
      blur: 0,
      color: {
        value: '#000'
      },
      enable: false,
      offset: {
        x: 0,
        y: 0
      }
    },
    shape: {
      loadShape: [],
      close: true,
      fill: true,
      options: [],
      type: 'circle'
    },
    size: {
      random: {
        enable: true,
        minimumValue: 1
      },
      value: {
        min: 0.1,
        max: 5
      },
      animation: {
        count: 0,
        enable: true,
        speed: 20,
        decay: 0,
        delay: 0,
        sync: false,
        mode: 'auto',
        startValue: 'random',
        destroy: 'none',
        minimumValue: 0.1
      }
    },
    stroke: {
      width: 0
    },
    zIndex: {
      random: {
        enable: false,
        minimumValue: 0
      },
      value: 0,
      opacityRate: 1,
      sizeRate: 1,
      velocityRate: 1
    },
    life: {
      count: 0,
      delay: {
        random: {
          enable: false,
          minimumValue: 0
        },
        value: 0,
        sync: false
      },
      duration: {
        random: {
          enable: false,
          minimumValue: 0.0001
        },
        value: 0,
        sync: false
      }
    },
    rotate: {
      random: {
        enable: false,
        minimumValue: 0
      },
      value: 0,
      animation: {
        enable: false,
        speed: 0,
        decay: 0,
        sync: false
      },
      direction: 'clockwise',
      path: false
    },
    destroy: {
      bounds: [],
      mode: 'none',
      split: {
        count: 1,
        factor: {
          random: {
            enable: false,
            minimumValue: 0
          },
          value: 3
        },
        rate: {
          random: {
            enable: false,
            minimumValue: 0
          },
          value: {
            min: 4,
            max: 9
          }
        },
        sizeOffset: true
      }
    },
    roll: {
      darken: {
        enable: false,
        value: 0
      },
      enable: false,
      enlighten: {
        enable: false,
        value: 0
      },
      mode: 'vertical',
      speed: 25
    },
    tilt: {
      random: {
        enable: false,
        minimumValue: 0
      },
      value: 0,
      animation: {
        enable: false,
        speed: 0,
        decay: 0,
        sync: false
      },
      direction: 'clockwise',
      enable: false
    },
    twinkle: {
      lines: {
        enable: false,
        frequency: 0.05,
        opacity: 1
      },
      particles: {
        enable: false,
        frequency: 0.05,
        opacity: 1
      }
    },
    wobble: {
      distance: 5,
      enable: false,
      speed: {
        angle: 50,
        move: 10
      }
    },
    orbit: {
      animation: {
        count: 0,
        enable: false,
        speed: 1,
        decay: 0,
        delay: 0,
        sync: false
      },
      enable: false,
      opacity: 1,
      rotation: {
        random: {
          enable: false,
          minimumValue: 0
        },
        value: 45
      },
      width: 1
    },
    links: {
      blink: false,
      color: {
        value: '#999'
      },
      consent: false,
      distance: 100,
      enable: true,
      frequency: 1,
      opacity: 0.4,
      shadow: {
        blur: 5,
        color: {
          value: '#000'
        },
        enable: false
      },
      triangles: {
        enable: false,
        frequency: 1
      },
      width: 1,
      warp: false
    },
    repulse: {
      random: {
        enable: false,
        minimumValue: 0
      },
      value: 0,
      enabled: false,
      distance: 1,
      duration: 1,
      factor: 1,
      speed: 1
    }
  },
  pauseOnBlur: true,
  pauseOnOutsideViewport: true,
  responsive: [],
  smooth: false,
  style: [],
  themes: [],
  zLayers: 1,
  motion: {
    disable: false,
    reduce: {
      factor: 4,
      value: true
    }
  }
}


到这里,整个项目运行起来就可以看到效果了。

具体配置的话可以去网上搜相关的文档,这里我就不做推荐了。

over!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/724277.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【分布式技术专题】「缓存解决方案」一文带领你好好认识一下企业级别的缓存技术解决方案的运作原理和开发实战(场景问题分析+性能影响因素)

一文带领你好好认识一下企业级别的缓存技术解决方案的运作原理和开发实战&#xff08;场景问题分析性能影响因素&#xff09; 常见的几个场景问题问题1&#xff1a;过期还是不过期缓存数据保证最终一致性 问题2&#xff1a;维度化缓存与增量更新通过维度化缓存优点和好处 问题3…

总在谈流程,却又做不好,问题出在哪?

时至今日&#xff0c;流程这个概念无论是在理论层面还是实践层面&#xff0c;都已为大家所熟知。 特别是随着华为的崛起&#xff0c;流程的吸引力与日俱增&#xff0c;为数不少的企业都在服用流程这剂灵丹妙药。 可是&#xff0c;真正搞明白流程概念的企业还不算多&#xff0…

win10开启远程桌面,win10开启3389端口

文章目录 前言一、不能远程桌面的原因1.1、系统设置未开启远程桌面功能1.2、开启防火墙3389端口1.3、开启3389端口 二、开启3389端口2.1、查看是否开启端口2.2、启动远程桌面服务2.3、远程连接administrator账号提示由于账户限制无法登录 三、其他 前言 最近重装了一下小主机系…

Unity 非父子物体保持相对静止

非父子物体保持相对静止 &#x1f354;效果&#x1f96a;食用 &#x1f354;效果 保持两个非父子关系的物体坐标、旋转相对静止 &#x1f96a;食用 插件下载 using System.Collections; using System.Collections.Generic; using UnityEngine;namespace ZYF {public class…

IntelliJ IDEA路径里面的反斜杠变成了其他符号解决办法

IntelliJ IDEA里面配置任何路径的时候路径里面的反斜杠分隔符变成了其他符号解决办法。 问题如图&#xff1a; 路径都变成了W加删除线。 原因&#xff1a; 字体设置问题&#xff0c;字体把斜杠转义了。 解决&#xff1a; 别用Gothic的相关字体&#xff0c;换成其他字体即…

如何在可视化页面中保证数据安全?Sugar BI通过URL参数标识用户,灵活实现用户权限

公开分享之后的大屏/报表页面中&#xff0c;由于不需要用户登录账号&#xff0c;因此页面中 数据模型的行级别权限、SQL 建模中嵌入用户邮箱、API 后端获取当前登录用户 这些需要用户登录账号才能进行的权限限制功能都不可用。 但是在一些场景下&#xff0c;是期望这些权限功能…

滴水逆向三期笔记与作业——02C语言——04 IF语句逆向分析上

OneNote防丢失。 海哥牛逼。 IF语句逆向分析上 一、内存图二、如何判断函数的参数2.1 一般情况 三、if的汇编案例根据汇编还原if 四、作业 一、内存图 二、如何判断函数的参数 2.1 一般情况 三、if的汇编 案例 根据汇编还原if 四、作业 海哥牛逼。

macbook安装chatglm2-6b

1、前言 chatglm安装环境还是比较简单的&#xff0c;比起Stable diffusion安装轻松不少。   安装分两部分&#xff0c;一是github的源码&#xff0c;二是Hugging Face上的模型代码&#xff1b;安装过程跟着官方的readme文档就能顺利安装。以下安装内容&#xff0c;绝大部分是…

自然语言处理:多层感知机MLP和Word2vec

文章目录 多层感知机MLP1.神经网络2.反向传播算法3.激活函数4.损失函数5.神经网络的使用场景 Word2vec参考 多层感知机MLP 1.神经网络 神经网络是一种计算模型&#xff0c;它受到人脑神经元之间连接和信息处理方式的启发。它由许多简单的处理单元&#xff08;称为神经元或节点…

初始Liunx线程

文章目录 前言1.初始Liunx下线程2.关于虚拟地址的补充知识3.线程的相关特点1.线程的优点2.线程的缺点3.线程异常4.线程和进程的比较 4.线程相关操作接口线程控制相关接口 5.关于线程id的理解 前言 本文主要是对Liunx之下线程的前置知识铺垫&#xff0c;同时也是对之前进程的相…

Spring Boot 中的认证是什么,如何使用

Spring Boot 中的认证是什么&#xff0c;如何使用 在 Web 应用程序中&#xff0c;认证是一项重要的安全措施。Spring Boot 提供了丰富的认证机制&#xff0c;可以帮助我们轻松地实现各种认证需求。本文将介绍 Spring Boot 中的认证是什么&#xff0c;以及如何使用 Spring Boot…

2023上半年软考系统分析师科目一整理-16

2023上半年软考系统分析师科目一整理-16 信息系统的性能评价指标是客观评价信息系统性能的依据&#xff0c;其中&#xff0c;&#xff08; &#xff09;是指系统在单位时间内处理请求的数量。 A.系统响应时间 B.吞吐量 C.资源利用率 D.并发用户数 运用互联网技术&#xff0c;在…

软件工程——第7章实现知识点整理

本专栏是博主个人笔记&#xff0c;主要目的是利用碎片化的时间来记忆软工知识点&#xff0c;特此声明&#xff01; 文章目录 1.实现由哪两个部分组成&#xff1f; 2.编码是什么&#xff1f;所选用的程序设计语言对程序的哪些特性有着深远影响&#xff1f; 3.软件测试在软件生…

旅游卡系统招募城市合伙人

旅游业的不断发展&#xff0c;旅游卡系统作为一种新型的旅游消费模式也逐渐被越来越多的人所认可。现在&#xff0c;许多旅游卡系统开始招募城市合伙人&#xff0c;以进一步拓展其市场。 旅游卡系统是一种可以将不同景区、景点门票进行整合&#xff0c;并提供折扣优惠的旅游…

谈谈mysql——Binlog的复制方式和解析技巧

mysql 我们先来看一下MySQL的基本架构&#xff0c;从大的方面来讲&#xff0c;一个server层&#xff0c;一个引擎层。server层就像一个接口&#xff0c;可以对接任何符合规定的引擎。具体的细节可以参考我之前写过的文章mysql的这些坑你踩过吗&#xff1f;快来看看怎么优化mys…

vue3+pinia用户信息持久缓存(token)的问题

vue3pinia用户信息持久缓存&#xff08;token)的问题 对博主来说&#xff0c;这是个相当复杂的问题。 当初在使用vue2vuex进行用户信息持久登录时&#xff0c;写了不下3篇博客&#xff0c;确实是解决了问题&#xff0c;博客链接如下 vue存储和使用后端传递过来的tokenvue中对…

动态规划之 509斐波那契数(第1道)

目录 题目&#xff1a;斐波那契数 &#xff08;通常用 表示&#xff09;形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始&#xff0c;后面的每一项数字都是前面两项数字的和。 解法&#xff1a; 动态规划法&#xff1a; 题目&#xff1a;斐波那契数 &#xff08;通常用…

大象机器人人工智能套装2023版深度学习协作机器人、先进机器视觉与应用场景

引言&#xff1a; 介绍当前的版本 今天我们要介绍的是aikit2023&#xff0c;aikit2023是aikit的全新升级版。 AIkit 2023 是一套集视觉&#xff0c;定位抓取、自动分拣模块为一体的入门级人工智能套装。 该套装基于python平台&#xff0c;可通过开发软件实现机械臂的控制&am…

gitee提交项目失败记录:remote:error:hook declined to update refs/heads/master

问题描述&#xff1b; 今天修改了项目里面一些文件内容&#xff0c;结果提交的时候报错了&#xff0c;可以提交到本地仓库&#xff0c;但提交到中央仓库报如下异常&#xff0c;因此记录下&#xff0c;防止后面再遇到…… 解决办法&#xff1a; 登录gitee账号&#xff0c;在设置…

自定义MVC的进阶使用

文章目录 前言一、环境配置1.1 将框架打包成jar包1.2 将Jar包导入新项目1.3 将分页标签相关文件、及相关助手类导入1.4 配置文件 二、前后台编写2.1 实体类2.2 dao2.3 Servlet2.4 配置mvc.xml2.5 JSP2.6 运行结果 前言 通用增删改查、通用分页、XML解析反射建模&#xff0c;包…