_Spinner.scss 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. $spinner_size: 24px;
  2. @mixin spinner() {
  3. .esri-ui {
  4. .esri-spinner {
  5. display: none;
  6. position: absolute;
  7. top: -999em;
  8. left: -999em;
  9. transform-origin: 0 0;
  10. opacity: 0;
  11. z-index: 2;
  12. box-shadow: none;
  13. background-color: transparent;
  14. padding: 0;
  15. width: $spinner_size;
  16. height: $spinner_size;
  17. overflow: visible;
  18. pointer-events: none;
  19. }
  20. .esri-spinner::before {
  21. display: block;
  22. position: absolute;
  23. margin: -50% 0 0 -50%;
  24. background: url("../base/images/Loading_Indicator_double_32.svg") no-repeat center;
  25. width: 100%;
  26. height: 100%;
  27. animation: esri-spinner--rotate-animation 750ms linear infinite;
  28. content: "";
  29. }
  30. .esri-spinner--start {
  31. display: block;
  32. animation: esri-spinner--start-animation 250ms cubic-bezier(0.17, 0.67, 0.36, 0.99) forwards;
  33. }
  34. .esri-spinner--finish {
  35. display: block;
  36. opacity: 1;
  37. animation: esri-spinner--finish-animation 125ms ease-in forwards;
  38. animation-delay: 75ms;
  39. }
  40. }
  41. }
  42. @keyframes esri-spinner--start-animation {
  43. 0% {
  44. transform: scale(0);
  45. opacity: 0;
  46. }
  47. 100% {
  48. transform: scale(1);
  49. opacity: 1;
  50. }
  51. }
  52. @keyframes esri-spinner--finish-animation {
  53. 0% {
  54. transform: scale(1);
  55. opacity: 1;
  56. }
  57. 100% {
  58. transform: scale(0);
  59. opacity: 0;
  60. }
  61. }
  62. @keyframes esri-spinner--rotate-animation {
  63. 0% {
  64. transform: rotate(0deg);
  65. }
  66. 100% {
  67. transform: rotate(360deg);
  68. }
  69. }
  70. @if $include_Spinner == true {
  71. @include spinner();
  72. }