App.vue 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <template>
  2. <div id="app">
  3. <transition name="fade">
  4. <keep-alive>
  5. <router-view v-if="$route.meta.keepAlive" />
  6. </keep-alive>
  7. </transition>
  8. <transition name="fade">
  9. <router-view v-if="!$route.meta.keepAlive"/>
  10. </transition>
  11. </div>
  12. </template>
  13. <style lang="less">
  14. @import url('./assets/commonLess/common');
  15. #app {
  16. font-family: 'Avenir', Helvetica, Arial, sans-serif;
  17. -webkit-font-smoothing: antialiased;
  18. -moz-osx-font-smoothing: grayscale;
  19. background: #F3F4F8;
  20. overflow-x: hidden;
  21. overflow-y: auto;
  22. user-select: none;
  23. }
  24. .slide-right-enter-active,
  25. .slide-right-leave-active,
  26. .slide-left-enter-active,
  27. .slide-left-leave-active {
  28. -webkit-will-change: transform;
  29. will-change: transform;
  30. transition: all 500ms;
  31. position: fixed;
  32. top: 0;
  33. left: 0;
  34. right: 0;
  35. }
  36. .slide-right-enter {
  37. opacity: 0;
  38. transform: translate3d(-100%, 0, 0);
  39. }
  40. .slide-right-leave-active {
  41. opacity: 0;
  42. transform: translate3d(100%, 0, 0);
  43. }
  44. .slide-left-enter {
  45. opacity: 0;
  46. transform: translate3d(100%, 0, 0);
  47. }
  48. .slide-left-leave-active {
  49. opacity: 0;
  50. transform: translate3d(-100%, 0, 0);
  51. }
  52. .fade-enter-active, .fade-leave-active {
  53. transition: opacity .5s
  54. }
  55. .fade-enter, .fade-leave-active {
  56. opacity: 0
  57. }
  58. </style>