【前端】在Vue2中使用Vanta.js炫酷动态背景(全屏背景)

1. 官网效果

在这里插入图片描述
官网:https://www.vantajs.com/

由于博主在参考官网及官方GitHub进行应用时遇到一些问题,因此写了该篇博客,以避免大家因找Bug而浪费时间,方便快速的应用。

2. npm安装

注意版本

npm install vanta@0.5.24
npm install three@0.121.0

Vue的版本如下
“vue”: “^2.6.14”

3. 关键部分

渲染容器

<div ref="vantaRef"></div>

导包

import * as THREE from 'three'
import BIRDS from 'vanta/src/vanta.birds'

方法

  mounted() {
    this.vantaEffect = BIRDS({
      el: this.$refs.vantaRef,
      THREE: THREE
    })
  },
  beforeDestroy() {
    if (this.vantaEffect) {
      this.vantaEffect.destroy()
    }
  },

4. 实例1

在这里插入图片描述
完整代码:

<template>
<div>
   <div ref="vantaRef" style="width:100%;height:100vh"></div>
   <div class="my_title">Hello,World</div>
</div>

</template>

<script>
import * as THREE from 'three'
import BIRDS from 'vanta/src/vanta.birds'

export default {   
  name: "hello",
  data() {
    return {
      
    };
  },
  mounted() {
    this.vantaEffect = BIRDS({
      el: this.$refs.vantaRef,
      THREE: THREE
    })
  },
  beforeDestroy() {
    if (this.vantaEffect) {
      this.vantaEffect.destroy()
    }
  },
  methods: {
    
  },

};
</script>

<style>
.my_title{
  z-index: 999;
  position: fixed;
  top: 40%;
  left: 10%;
  color: aquamarine;
  font-size: 100px;
  font-weight: bolder;
}
</style>

5. 实例2

在这里插入图片描述

完整代码:

<template>
<div>
   <div ref="vantaRef" style="width:100%;height:100vh"></div>
   <div class="my_title">Hello,World</div>
</div>

</template>

<script>
import * as THREE from 'three'
import Net from 'vanta/src/vanta.net'
export default {   
  name: "hello",
  data() {
    return {
      
    };
  },
  mounted() {
    this.vantaEffect = Net({
      el: this.$refs.vantaRef,
      THREE: THREE
    })
  },
  beforeDestroy() {
    if (this.vantaEffect) {
      this.vantaEffect.destroy()
    }
  },
  methods: {
    
  },

};
</script>

<style>
.my_title{
  z-index: 999;
  position: fixed;
  top: 40%;
  left: 10%;
  color: aquamarine;
  font-size: 100px;
  font-weight: bolder;
}
</style>

6. 实例3 添加颜色参数等

参加颜色参数
在这里插入图片描述

<template>
<div>
   <div ref="vantaRef" style="width:100%;height:100vh"></div>
   <div class="my_title">Hello,World</div>
</div>

</template>

<script>
import * as THREE from 'three'
import Net from 'vanta/src/vanta.net'
export default {   
  name: "hello",
  data() {
    return {
      
    };
  },
  mounted() {
    this.vantaEffect = Net({
      el: this.$refs.vantaRef,
      THREE: THREE
    })

    VANTA.NET({
  el: this.$refs.vantaRef,
  mouseControls: true,
  touchControls: true,
  gyroControls: false,
  minHeight: 200.00,
  minWidth: 200.00,
  scale: 1.00,
  scaleMobile: 1.00,
  color: 0xdec790,
  backgroundColor: 0xc04393,
  spacing: 12.00
})


  },
  beforeDestroy() {
    if (this.vantaEffect) {
      this.vantaEffect.destroy()
    }
  },
  methods: {
    
  },

};
</script>

<style>
.my_title{
  z-index: 999;
  position: fixed;
  top: 40%;
  left: 10%;
  color: aquamarine;
  font-size: 100px;
  font-weight: bolder;
}
</style>

如果报错:‘XXXXX‘ is not defined ( no-undef )
可参考:https://blog.csdn.net/weixin_44442366/article/details/126162933

更多的特效背景可参考官网:https://www.vantajs.com
修改import和mounted中的信息即可

在这里插入图片描述

如果觉得本文有用,点赞收藏鼓励一下吧

  • 20
    点赞
  • 112
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值