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);
}

但是我在做项目过程中发现页面高度不一致的时候,页面会先抖动一下,在浏览器中这个问题是不存在的,只有在手机中才存在这个问题。然后经过一番百度我加入了下面代码就解决了。

.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;
}

但是我经过测试,只需要加入overflow-x: hidden;这一行代码就可以,我感觉是页面高度不一致导致的问题,至于为什么加入这个代码生效至今没有弄懂。先记录一下。

原博:https://blog.csdn.net/qq_25610161/article/details/81940863

上一篇:谈谈CSS3 transition与animation的区别


下一篇:Vue中CSS动画原理