vue过渡动画白屏处理

Vue 提供了 transition 的封装组件,所以在组件离开或者进入的时候可以添加动画效果。下面是官网的一些介绍,详细的文档请查看官网。

根据官网介绍我们写了一下样式,实现过渡动画效果。

.slide-right-enter-active,
.slide-right-leave-active,
.slide-left-enter-active,
.slide-left-leave-active {
  height: 100%;
  will-change: transform;
  transition: all 500ms;
  position: absolute;
  backface-visibility: hidden;
  perspective: 1000;
}
.slide-right-enter {
  opacity: 0;
  transform: translate3d(-100%, 0, 0);
}
.slide-right-leave-active {
  opacity: 0;
  transform: translate3d(100%, 0, 0);
}
.slide-left-enter {
  opacity: 0;
  transform: translate3d(100%, 0, 0);
}
.slide-left-leave-active {
  opacity: 0;
  transform: translate3d(-100%, 0, 0);
}

但是仔细观察发现页面动画的时候会有一瞬间的白屏。然后改用了以下代码,然后白屏的bug消失了。(白屏是body的颜色,如果body背景色是黑色,那白屏就变为黑屏了

.router-view {
  width: 100%;
  height:100%;
  position: absolute;
  top: 0;
  bottom: 0;
  margin: 0 auto;
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
}
.slide-right-enter-active,
.slide-right-leave-active,
.slide-left-enter-active,
.slide-left-leave-active {
  height: 100%;
  will-change: transform;
  transition: all 500ms;
  position: absolute;
  backface-visibility: hidden;
  perspective: 1000;
}
.slide-right-enter,.slide-right-enter-active{
animation: bounce-left-in 500ms;
}
.slide-right-leave-active {
animation: bounce-left-out 500ms;
}
.slide-left-enter, .slide-left-enter-active{
animation: bounce-right-in 500ms;
}
.slide-left-leave-active {
animation: bounce-right-out 500ms;
}

@keyframes bounce-right-in {
  0% {
  transform: translate3d(100%, 0, 0);
  }
  100% {
  transform: translate3d(0px, 0, 0);
  }
}
@keyframes bounce-right-out {
  0% {
    transform: translate3d(0, 0, 0);
  }
  100% {
    transform: translate3d(-100%, 0, 0);
  }
}
@keyframes bounce-left-in {
  0% {
  transform: translate3d(-100%, 0, 0);
  }
  100% {
  transform: translate3d(0px, 0, 0);
  }
}
@keyframes bounce-left-out {
  0% {
    transform: translate3d(0, 0, 0);
  }
  100% {
    transform: translate3d(100%, 0, 0);
  }
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值