CircleSpinner.vue 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <template>
  2. <div class="loader" :style="{fontSize: size + 'px', borderLeft: '1.1em solid ' + color}">Loading...</div>
  3. </template>
  4. <script>
  5. export default {
  6. name: 'IntersectingCirclesSpinner',
  7. props: {
  8. color: {
  9. type: String,
  10. default: '#fff'
  11. },
  12. size: {
  13. type: String,
  14. default: '10'
  15. }
  16. },
  17. }
  18. </script>
  19. <style scoped>
  20. .loader,
  21. .loader:after {
  22. border-radius: 50%;
  23. width: 10em;
  24. height: 10em;
  25. }
  26. .loader {
  27. margin: 0px auto;
  28. position: relative;
  29. text-indent: -9999em;
  30. border-top: 1.1em solid rgba(255, 255, 255, 0.2);
  31. border-right: 1.1em solid rgba(255, 255, 255, 0.2);
  32. border-bottom: 1.1em solid rgba(255, 255, 255, 0.2);
  33. -webkit-transform: translateZ(0);
  34. -ms-transform: translateZ(0);
  35. transform: translateZ(0);
  36. -webkit-animation: load8 1.1s infinite linear;
  37. animation: load8 1.1s infinite linear;
  38. }
  39. @-webkit-keyframes load8 {
  40. 0% {
  41. -webkit-transform: rotate(0deg);
  42. transform: rotate(0deg);
  43. }
  44. 100% {
  45. -webkit-transform: rotate(360deg);
  46. transform: rotate(360deg);
  47. }
  48. }
  49. @keyframes load8 {
  50. 0% {
  51. -webkit-transform: rotate(0deg);
  52. transform: rotate(0deg);
  53. }
  54. 100% {
  55. -webkit-transform: rotate(360deg);
  56. transform: rotate(360deg);
  57. }
  58. }
  59. </style>