温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Vue怎么实现星空效果

发布时间:2022-04-11 10:41:30 来源:亿速云 阅读:384 作者:iii 栏目:开发技术

本篇内容主要讲解“Vue怎么实现星空效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Vue怎么实现星空效果”吧!

星空效果如下

Vue怎么实现星空效果

1.星空背景子组件

<template>
  <div class="stars">
    <div class="star" v-for="(item, index) in starsCount" :key="index" ref="star"></div>
  </div>
</template>

<script>

export default {
  name: 'StarBackground',
  props: {},
  data() {
    return {
      starsCount: 1200,
      distance: 800
    }
  },
  mounted() {
    this.initStars()
  },
  methods: {
    initStars() {
      let starArr = this.$refs.star
      starArr.forEach(item => {
        let speed = 0.2 + (Math.random() * 1)
        let thisDistance = this.distance + (Math.random() * 300)
        item.style.transformOrigin = `0 0 ${thisDistance}px`
        item.style.transform = `translate3d(0, 0, -${thisDistance}px) rotateY(${(Math.random() * 360)}deg) rotateX(${(Math.random() * -50)}deg) scale(${speed}, ${speed})`
      })
    }
  }
}
</script>

<style scoped lang="scss">
@keyframes rotate {
  0% {
    transform: perspective(600px) rotateZ(20deg) rotateX(-40deg) rotateY(0);
  }
  100% {
    transform: perspective(600px) rotateZ(20deg) rotateX(-40deg) rotateY(-360deg);
  }
}

.stars {
  transform: perspective(500px);
  transform-style: preserve-3d;
  position: absolute;
  perspective-origin: 50% 100%;
  left: 50%;
  animation: rotate 90s infinite linear;
  bottom: -200px;
}

.star {
  width: 2px;
  height: 2px;
  background: #f7f7b8;
  position: absolute;
  top: 0;
  left: 0;
  backface-visibility: hidden;
}
</style>

2.登录页引用子组件

<template>
  <div class="login-container">
    <star-background />
  </div>
</template>

<script>
import StarBackground from './components/StarBackground'

export default {
  beforeCreate: function() {
    document.getElementsByTagName('body')[0].className = 'body-bg'
  },
  components: { StarBackground }
}
</script>

<style lang="scss">
.body-bg {
  background-attachment: fixed;
  overflow: hidden;
}

.login-container {
  height: 100%;
  width: 100%;
  overflow: hidden;
  background-color: #050608;
}
</style>

background-attachment: fixed;很重要,需要把界面固定住,不然下拉会出现空白

到此,相信大家对“Vue怎么实现星空效果”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

vue
AI