rotate-plane.vue 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <template>
  2. <view>
  3. <view :style="{
  4. backgroundColor: color,
  5. width: size+20+'px',
  6. height: size+20+'px' }" class="spinner-inside"></view>
  7. </view>
  8. </template>
  9. <script>
  10. export default {
  11. name: 'rotatePlane',
  12. props: {
  13. color: String,
  14. size: Number
  15. }
  16. }
  17. </script>
  18. <style scoped>
  19. .spinner-inside {
  20. margin: 25px auto;
  21. -webkit-animation: rotateplane 1.2s infinite ease-in-out;
  22. animation: rotateplane 1.2s infinite ease-in-out;
  23. }
  24. @-webkit-keyframes rotateplane {
  25. 0% { -webkit-transform: perspective(120px) }
  26. 50% { -webkit-transform: perspective(120px) rotateY(180deg) }
  27. 100% { -webkit-transform: perspective(120px) rotateY(180deg) rotateX(180deg) }
  28. }
  29. @keyframes rotateplane {
  30. 0% {
  31. transform: perspective(120px) rotateX(0deg) rotateY(0deg);
  32. -webkit-transform: perspective(120px) rotateX(0deg) rotateY(0deg)
  33. } 50% {
  34. transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg);
  35. -webkit-transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg)
  36. } 100% {
  37. transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);
  38. -webkit-transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);
  39. }
  40. }
  41. </style>