如何解决如何在 Vue 中实现我的启动画面?
附注:
下面来自我的 Vue 应用程序的初始屏幕代码是一个视图文件,而不是一个组件。另外我要起诉 Vue 路由器。
下面是我的代码,这是一个使用 Gsap 的闪屏,它有一个回调函数,我以后可以把它放在一个路由中,该路由转到“/”,即主页视图。
如何在启动 Vue 应用程序时首先显示此视图?然后一旦动画完成,回调就会将用户引导到主页。还有一件事,我不确定这将如何工作,但我想确保一旦用户进入主页并出于某种原因刷新他们就不必再次看到启动画面。怎样才能做到这一点?
注意:我确实尝试弄乱路由器下的 index.js,但没有任何效果,重定向也不允许用户访问主页。
HTML:
<template>
<div class="module_wrapper">
<h1 ref="title">Welcome</h1>
<div ref="module" class="module">
<div class="top_wrapper">
<div ref="box1" class="box box_1"></div>
</div>
<div class="bottom_wrapper">
<div ref="box2" class="box box_2"></div>
<div ref="box3" class="box box_4"></div>
<div ref="box4" class="box box_5"></div>
<div ref="box5" class="box box_3"></div>
</div>
</div>
</div>
</template>
JavaScript:
import { TimelineLite,Back } from 'gsap';
export default {
methods: {
onCompleteAll () {
console.log('done');
}
},mounted () {
const {module} = this.$refs;
const {title} = this.$refs;
const {box1} = this.$refs;
const {box2} = this.$refs;
const {box3} = this.$refs;
const {box4} = this.$refs;
const {box5} = this.$refs;
const {top} = this.$refs;
const {bottom} = this.$refs;
const timeline = new TimelineLite({onComplete: this.onCompleteAll});
timeline.to(module,1.3,{scale: 1,ease: 'elastic.out(1,0.5)',})
.to(box1,0.5,{opacity: 1,translateY: 0,ease: Back.easeInOut},'-=0.4')
.to(box2,'-=0.4')
.to(box3,'-=0.4')
.to(box4,'-=0.4')
.to(box5,'-=0.4')
.to(top,0.4,{marginLeft: 10 + '%','-=0.2')
.to(bottom,'-=0.2')
.to(title,{
translateY: 0,opacity: 1,ease: Back.easeInOut
},'-=0.8');
}
};
CSS:
#app {
font-family: Arial,sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
width: 100%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
}
html {
font-size: 100%;
box-sizing: border-box;
}
*,*::before,*::after {
box-sizing: inherit;
outline: none;
}
html {
width: 100%;
height: 100%;
overflow: hidden;
}
html,body {
transform: perspective(1px) scale(1) translateZ(0);
backface-visibility: hidden;
-webkit-font-smoothing: subpixel-antialiased;
}
body {
background: radial-gradient(#656565,#000000);
width: 100%;
height: 100%;
}
.module_wrapper {
color: white;
text-align: center;
height: 13.4375rem;
width: 18.75rem;
margin: 0;
padding: 0;
border-radius: 0.75rem;
}
h1 {
font-size: 1.4375rem;
font-weight: 500;
color: #D9D9D9;
letter-spacing: 0.5rem;
cursor: default;
opacity: 0;
transform: translateY(10px);
}
.module {
background-color: #fff;
border-radius: 0.75rem;
width: 18.75rem;
height: 11.375rem;
margin: 0;
padding: 0;
transform: scale(0);
}
.top_wrapper {
display: flex;
align-items: center;
justify-content: center;
height: 50%;
padding: 0 1.25rem;
}
.bottom_wrapper {
display: flex;
align-items: center;
padding: 0 1.25rem;
justify-content: space-evenly;
height: 50%;
}
.box {
background-color: #D9D9D9;
border-radius: 0.4375rem;
margin: 0;
padding: 0;
transform: translateY(-40px);
opacity: 0;
}
.box_1 {
width: 14.375rem;
height: 3.6rem;
}
.box_2,.box_3,.box_4,.box_5 {
width: 2.875rem;
height: 3.25rem;
}
解决方法
您需要将 Navigation Guard 添加到您的 from scipy.stats import norm
all_col = data.select_dtypes(include=np.number).columns.tolist()
plt.figure(figsize=(17,75))
for i in range(len(all_col)):
plt.subplot(18,3,i+1)
sns.distplot(data[all_col[i]])
plt.tight_layout()
plt.title(all_col[i],fontsize=25)
plt.axvline(data.mean(),color='k',linestyle='dashed',linewidth=1)#displaying the mean on the chart
plt.show()
路线。
总体思路是:
-检查用户是否已经通过身份验证
- 如果有,请致电 /
- 如果他们还没有,将他们重定向到登录/启动页面:next()
有几个选项,但我认为最好的一个是控制组件在 App.vue 中的可见性,而不是在组件内部。当动画结束时向父级发出一些东西,在父级中听那个东西,并改变组件的可见性。
为了只显示一次动画,请使用会话存储或本地存储,并作为页面加载的第一个作业,检查存储是否有任何相关内容。如果它不播放您的动画。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。