Vue實(shí)現(xiàn)星空效果
本文實(shí)例為大家分享了Vue實(shí)現(xiàn)星空效果的具體代碼,供大家參考,具體內(nèi)容如下

需要實(shí)現(xiàn)上圖的星空效果
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;很重要,需要把界面固定住,不然下拉會(huì)出現(xiàn)空白
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
vue-quill-editor實(shí)現(xiàn)圖片上傳功能
這篇文章主要為大家詳細(xì)介紹了vue-quill-editor實(shí)現(xiàn)圖片上傳功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08
vue實(shí)現(xiàn)移動(dòng)端可拖拽式icon圖標(biāo)
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)移動(dòng)端可拖拽式icon圖標(biāo),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
利用vue+elementUI設(shè)置省市縣三級(jí)聯(lián)動(dòng)下拉列表框的詳細(xì)過程
在做電商項(xiàng)目的時(shí)候需要添加修改收貨地址,如何實(shí)現(xiàn)三級(jí)聯(lián)動(dòng)選取省市區(qū)地址困擾了我不少時(shí)間,這篇文章主要給大家介紹了關(guān)于利用vue+elementUI設(shè)置省市縣三級(jí)聯(lián)動(dòng)下拉列表框的相關(guān)資料,需要的朋友可以參考下2022-08-08
Vue.js@2.6.10更新內(nèi)置錯(cuò)誤處機(jī)制Fundebug同步支持相應(yīng)錯(cuò)誤監(jiān)控
這篇文章主要介紹了Vue.js@2.6.10更新內(nèi)置錯(cuò)誤處機(jī)制,F(xiàn)undebug同步支持相應(yīng)錯(cuò)誤監(jiān)控 ,需要的朋友可以參考下2019-05-05
如何用命令窗口的方式創(chuàng)建Vue項(xiàng)目
這篇文章主要介紹了如何用命令窗口的方式創(chuàng)建Vue項(xiàng)目過程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08
vue.js使用v-model實(shí)現(xiàn)父子組件間的雙向通信示例
這篇文章主要介紹了vue.js使用v-model實(shí)現(xiàn)父子組件間的雙向通信,結(jié)合實(shí)例形式分析了vue.js基于v-model父子組件間的雙向通信的具體實(shí)現(xiàn)技巧,需要的朋友可以參考下2020-02-02

