index.html 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <script src="../../dist/vue.global.js"></script>
  2. <div id="app"></div>
  3. <script>
  4. Vue.createApp({
  5. template: `
  6. <div id="test"><transition><div v-if="toggle" class="test">content</div></transition></div>
  7. <button @click="click">button</button>
  8. `,
  9. setup:() => {
  10. const toggle = Vue.ref(true)
  11. const click = () => toggle.value = !toggle.value
  12. return { toggle, click }
  13. }
  14. }).mount('#app')
  15. </script>
  16. <style>
  17. .test {
  18. -webkit-transition: opacity 50ms ease;
  19. transition: opacity 50ms ease;
  20. }
  21. .group-move {
  22. -webkit-transition: -webkit-transform 50ms ease;
  23. transition: transform 50ms ease;
  24. }
  25. .v-appear, .v-enter, .v-leave-active,
  26. .test-appear, .test-enter, .test-leave-active,
  27. .hello, .bye.active,
  28. .changed-enter {
  29. opacity: 0;
  30. }
  31. .test-anim-enter-active {
  32. animation: test-enter 50ms;
  33. -webkit-animation: test-enter 50ms;
  34. }
  35. .test-anim-leave-active {
  36. animation: test-leave 50ms;
  37. -webkit-animation: test-leave 50ms;
  38. }
  39. .test-anim-long-enter-active {
  40. animation: test-enter 100ms;
  41. -webkit-animation: test-enter 100ms;
  42. }
  43. .test-anim-long-leave-active {
  44. animation: test-leave 100ms;
  45. -webkit-animation: test-leave 100ms;
  46. }
  47. @keyframes test-enter {
  48. from { opacity: 0 }
  49. to { opacity: 1 }
  50. }
  51. @-webkit-keyframes test-enter {
  52. from { opacity: 0 }
  53. to { opacity: 1 }
  54. }
  55. @keyframes test-leave {
  56. from { opacity: 1 }
  57. to { opacity: 0 }
  58. }
  59. @-webkit-keyframes test-leave {
  60. from { opacity: 1 }
  61. to { opacity: 0 }
  62. }
  63. </style>