waitMe.css 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. /*
  2. waitMe - 1.15 [15.02.16]
  3. Author: vadimsva
  4. Github: https://github.com/vadimsva/waitMe
  5. */
  6. .waitMe_container {position:relative;transform:translateZ(0);backface-visibility:hidden}
  7. body.waitMe_container {position:fixed;width:100%;height:100%}
  8. .waitMe_container .waitMe {position:absolute;top:0;left:0;right:0;bottom:0;z-index:9989;text-align:center;overflow:hidden}
  9. .waitMe_container .waitMe * {font-family:sans-serif;font-size:14px;font-weight:initial;font-style:initial;line-height:initial;color:initial;text-decoration:initial;text-transform:initial;padding:initial;margin:initial}
  10. .waitMe_container .waitMe .waitMe_content {position:absolute;left:0;right:0;top:50%;backface-visibility:hidden}
  11. .waitMe_container .waitMe .waitMe_progress {position:relative;font-size:0}
  12. .waitMe_container .waitMe .waitMe_progress > div {animation-fill-mode:both;display:inline-block;transform:translateZ(0);backface-visibility:hidden}
  13. .waitMe_container .waitMe .waitMe_text {position:relative;margin:20px 0 0}
  14. /* before load animation */
  15. body.waitMe_body {overflow:hidden;height:100%}
  16. body.waitMe_body.hideMe {transition:opacity .2s ease-in-out;opacity:0}
  17. body.waitMe_body .waitMe_container:not([data-waitme_id]) {position:fixed;z-index:9989;top:0;bottom:0;left:0;right:0;background:#fff}
  18. body.waitMe_body .waitMe_container:not([data-waitme_id]) > div {animation-fill-mode:both;position:absolute}
  19. body.waitMe_body .waitMe_container.progress > div {width:0;height:3px;top:0;left:0;background:#000;box-shadow:-5px 0 5px 2px rgba(0,0,0,.2);animation:progress_body 7s infinite ease-out}
  20. body.waitMe_body .waitMe_container.working > div {width:10%;height:3px;top:0;left:-10%;background:#000;box-shadow:-5px 0 5px 2px rgba(0,0,0,.2);animation:working_body 2s infinite linear}
  21. body.waitMe_body .waitMe_container.progress > div:after {content:'';position:absolute;top:0;bottom:60%;right:0;width:60px;border-radius:50%;opacity:.5;transform:rotate(3deg);box-shadow:#000 1px 0 6px 1px}
  22. body.waitMe_body .waitMe_container.img > div {width:100%;height:100%;text-align:center;background-position:center!important;background-repeat:no-repeat!important}
  23. body.waitMe_body .waitMe_container.text > div {width:100%;top:45%;text-align:center}
  24. @keyframes progress_body {
  25. 0% {width:0}
  26. 100% {width:100%}
  27. }
  28. @keyframes working_body {
  29. 0% {left:-10%}
  30. 100% {left:100%}
  31. }
  32. /* bounce */
  33. .waitMe_container .waitMe_progress.bounce > div {width:20px;height:20px;border-radius:50%;animation:bounce 1.4s infinite ease-in-out}
  34. .waitMe_container .waitMe_progress.bounce .waitMe_progress_elem1 {animation-delay:-.32s}
  35. .waitMe_container .waitMe_progress.bounce .waitMe_progress_elem2 {animation-delay:-.16s}
  36. @keyframes bounce {
  37. 0%, 80%, 100% {transform:scale(0)}
  38. 40% {transform:scale(1)}
  39. }
  40. /* rotateplane */
  41. .waitMe_container .waitMe_progress.rotateplane > div {width:30px;height:30px;animation:rotateplane 1.2s infinite ease-in-out;backface-visibility:visible}
  42. @keyframes rotateplane {
  43. 0% {transform:perspective(120px)}
  44. 50% {transform:perspective(120px) rotateY(180deg)}
  45. 100% {transform:perspective(120px) rotateY(180deg) rotateX(180deg)}
  46. }
  47. /* stretch */
  48. .waitMe_container .waitMe_progress.stretch > div {width:1px;height:60px;margin:4px;animation:stretch 1.2s infinite ease-in-out}
  49. .waitMe_container .waitMe_progress.stretch .waitMe_progress_elem2 {animation-delay:-1.1s}
  50. .waitMe_container .waitMe_progress.stretch .waitMe_progress_elem3 {animation-delay:-1s}
  51. .waitMe_container .waitMe_progress.stretch .waitMe_progress_elem4 {animation-delay:-.9s}
  52. .waitMe_container .waitMe_progress.stretch .waitMe_progress_elem5 {animation-delay:-.8s}
  53. @keyframes stretch {
  54. 0%, 40%, 100% {transform:scaleY(.4)}
  55. 20% {transform:scaleY(1)}
  56. }
  57. /* orbit */
  58. .waitMe_container .waitMe_progress.orbit {width:40px;height:40px;margin:auto;animation:orbit_rotate 2s infinite linear}
  59. .waitMe_container .waitMe_progress.orbit > div {width:50%;height:50%;border-radius:50%;top:10%;left:10%;position:absolute;animation:orbit 2s infinite ease-in-out}
  60. .waitMe_container .waitMe_progress.orbit .waitMe_progress_elem2 {top:auto;bottom:10%;left:auto;right:10%;animation-delay:-1s}
  61. @keyframes orbit_rotate {
  62. 100% {transform:rotate(360deg) scale(1)}
  63. }
  64. @keyframes orbit {
  65. 0%, 100% {transform:scale(0)}
  66. 50% {transform:scale(1)}
  67. }
  68. /* roundBounce */
  69. .waitMe_container .waitMe_progress.roundBounce {width:60px;height:60px;margin:auto}
  70. .waitMe_container .waitMe_progress.roundBounce > div {width:24%;height:24%;border-radius:50%;position:absolute;animation:roundBounce 1.2s infinite ease-in-out}
  71. .waitMe_container .waitMe_progress.roundBounce .waitMe_progress_elem1 {top:0;left:0}
  72. .waitMe_container .waitMe_progress.roundBounce .waitMe_progress_elem2 {top:0;right:0}
  73. .waitMe_container .waitMe_progress.roundBounce .waitMe_progress_elem3 {bottom:0;right:0}
  74. .waitMe_container .waitMe_progress.roundBounce .waitMe_progress_elem4 {bottom:0;left:0}
  75. .waitMe_container .waitMe_progress.roundBounce .waitMe_progress_elem5 {top:-3%;left:50%;margin-top:-12%;margin-left:-12%}
  76. .waitMe_container .waitMe_progress.roundBounce .waitMe_progress_elem6 {top:50%;right:-3%;margin-top:-12%;margin-right:-12%}
  77. .waitMe_container .waitMe_progress.roundBounce .waitMe_progress_elem7 {bottom:-3%;left:50%;margin-bottom:-12%;margin-left:-12%}
  78. .waitMe_container .waitMe_progress.roundBounce .waitMe_progress_elem8 {top:50%;left:-3%;margin-top:-12%;margin-left:-12%}
  79. .waitMe_container .waitMe_progress.roundBounce .waitMe_progress_elem9 {top:0;right:0}
  80. .waitMe_container .waitMe_progress.roundBounce .waitMe_progress_elem10 {bottom:0;right:0}
  81. .waitMe_container .waitMe_progress.roundBounce .waitMe_progress_elem11 {bottom:0;left:0}
  82. .waitMe_container .waitMe_progress.roundBounce .waitMe_progress_elem12 {top:0;left:0}
  83. .waitMe_container .waitMe_progress.roundBounce .waitMe_progress_elem5 {animation-delay:-1.1s}
  84. .waitMe_container .waitMe_progress.roundBounce .waitMe_progress_elem9 {animation-delay:-1s}
  85. .waitMe_container .waitMe_progress.roundBounce .waitMe_progress_elem2 {animation-delay:-.9s}
  86. .waitMe_container .waitMe_progress.roundBounce .waitMe_progress_elem6 {animation-delay:-.8s}
  87. .waitMe_container .waitMe_progress.roundBounce .waitMe_progress_elem10 {animation-delay:-.7s}
  88. .waitMe_container .waitMe_progress.roundBounce .waitMe_progress_elem3 {animation-delay:-.6s}
  89. .waitMe_container .waitMe_progress.roundBounce .waitMe_progress_elem7 {animation-delay:-.5s}
  90. .waitMe_container .waitMe_progress.roundBounce .waitMe_progress_elem11 {animation-delay:-.4s}
  91. .waitMe_container .waitMe_progress.roundBounce .waitMe_progress_elem4 {animation-delay:-.3s}
  92. .waitMe_container .waitMe_progress.roundBounce .waitMe_progress_elem8 {animation-delay:-.2s}
  93. .waitMe_container .waitMe_progress.roundBounce .waitMe_progress_elem12 {animation-delay:-.1s}
  94. @keyframes roundBounce {
  95. 0%, 80%, 100% {transform:scale(0)}
  96. 40% {transform:scale(1)}
  97. }
  98. /* win8 */
  99. .waitMe_container .waitMe_progress.win8 {width:40px;height:40px;margin:auto}
  100. .waitMe_container .waitMe_progress.win8 > div {width:100%;height:100%;opacity:0;position:absolute;margin:auto;left:0;right:0;transform:rotate(225deg);animation:win8 5.5s infinite}
  101. .waitMe_container .waitMe_progress.win8 > div > div {width:15%;height:15%;border-radius:50%;position:absolute}
  102. .waitMe_container .waitMe_progress.win8 .waitMe_progress_elem2 {animation-delay:.24s}
  103. .waitMe_container .waitMe_progress.win8 .waitMe_progress_elem3 {animation-delay:.48s}
  104. .waitMe_container .waitMe_progress.win8 .waitMe_progress_elem4 {animation-delay:.72s}
  105. .waitMe_container .waitMe_progress.win8 .waitMe_progress_elem5 {animation-delay:.96s}
  106. @keyframes win8 {
  107. 0% {transform:rotate(225deg);animation-timing-function:ease-out}
  108. 7% {opacity:1;transform:rotate(345deg);animation-timing-function:linear}
  109. 30% {transform:rotate(455deg);animation-timing-function:ease-in-out}
  110. 39% {transform:rotate(690deg);animation-timing-function:linear}
  111. 70% {opacity:1;transform:rotate(815deg);animation-timing-function:ease-out}
  112. 75% {transform:rotate(945deg);animation-timing-function:ease-out}
  113. 76% {opacity:0;transform:rotate(945deg)}
  114. 100% {opacity:0;transform:rotate(945deg)}
  115. }
  116. /* win8_linear */
  117. .waitMe_container .waitMe_progress.win8_linear {margin:auto;width:150px;height:6px}
  118. .waitMe_container .waitMe_progress.win8_linear > div {width:100%;height:100%;left:0;opacity:0;position:absolute;animation:win8_linear 3s infinite}
  119. .waitMe_container .waitMe_progress.win8_linear > div > div {width:4%;height:100%;border-radius:50%}
  120. .waitMe_container .waitMe_progress.win8_linear .waitMe_progress_elem2 {animation-delay:.3s}
  121. .waitMe_container .waitMe_progress.win8_linear .waitMe_progress_elem3 {animation-delay:.6s}
  122. .waitMe_container .waitMe_progress.win8_linear .waitMe_progress_elem4 {animation-delay:.9s}
  123. .waitMe_container .waitMe_progress.win8_linear .waitMe_progress_elem5 {animation-delay:1.2s}
  124. @keyframes win8_linear {
  125. 0% {transform:translateX(0);animation-timing-function:ease-out}
  126. 10% {opacity:1;transform:translateX(33.333%);animation-timing-function:linear}
  127. 50% {opacity:1;transform:translateX(53.333%);animation-timing-function:ease-in-out}
  128. 60% {opacity:0;transform:translateX(86.666%)}
  129. }
  130. /* ios */
  131. .waitMe_container .waitMe_progress.ios {margin:auto;width:40px;height:40px}
  132. .waitMe_container .waitMe_progress.ios > div {width:10%;height:26%;position:absolute;left:44.5%;top:37%;opacity:0;border-radius:50px;box-shadow:0 0 3px rgba(0,0,0,.2);animation:ios 1s infinite linear}
  133. .waitMe_container .waitMe_progress.ios .waitMe_progress_elem1 {transform:rotate(0deg) translate(0, -142%);animation-delay:0s}
  134. .waitMe_container .waitMe_progress.ios .waitMe_progress_elem2 {transform:rotate(30deg) translate(0, -142%);animation-delay:-.9167s}
  135. .waitMe_container .waitMe_progress.ios .waitMe_progress_elem3 {transform:rotate(60deg) translate(0, -142%);animation-delay:-.833s}
  136. .waitMe_container .waitMe_progress.ios .waitMe_progress_elem4 {transform:rotate(90deg) translate(0, -142%);animation-delay:-.75s}
  137. .waitMe_container .waitMe_progress.ios .waitMe_progress_elem5 {transform:rotate(120deg) translate(0, -142%);animation-delay:-.667s}
  138. .waitMe_container .waitMe_progress.ios .waitMe_progress_elem6 {transform:rotate(150deg) translate(0, -142%);animation-delay:-.5833s}
  139. .waitMe_container .waitMe_progress.ios .waitMe_progress_elem7 {transform:rotate(180deg) translate(0, -142%);animation-delay:-.5s}
  140. .waitMe_container .waitMe_progress.ios .waitMe_progress_elem8 {transform:rotate(210deg) translate(0, -142%);animation-delay:-.41667s}
  141. .waitMe_container .waitMe_progress.ios .waitMe_progress_elem9 {transform:rotate(240deg) translate(0, -142%);animation-delay:-.333s}
  142. .waitMe_container .waitMe_progress.ios .waitMe_progress_elem10 {transform:rotate(270deg) translate(0, -142%);animation-delay:-.25s}
  143. .waitMe_container .waitMe_progress.ios .waitMe_progress_elem11 {transform:rotate(300deg) translate(0, -142%);animation-delay:-.1667s}
  144. .waitMe_container .waitMe_progress.ios .waitMe_progress_elem12 {transform:rotate(330deg) translate(0, -142%);animation-delay:-.0833s}
  145. @keyframes ios {
  146. 0% {opacity:1}
  147. 100% {opacity:.25}
  148. }
  149. /* facebook */
  150. .waitMe_container .waitMe_progress.facebook {margin:auto}
  151. .waitMe_container .waitMe_progress.facebook > div {width:6px;height:25px;margin-left:3px;border-radius:20px;transform:scaleY(.7);opacity:.1;animation:facebook 1.3s infinite ease-in-out}
  152. .waitMe_container .waitMe_progress.facebook > .waitMe_progress_elem1 {animation-delay:.2s;transform:scaleY(.7)}
  153. .waitMe_container .waitMe_progress.facebook > .waitMe_progress_elem2 {animation-delay:.4s;transform:scaleY(.85)}
  154. .waitMe_container .waitMe_progress.facebook > .waitMe_progress_elem3 {animation-delay:.6s;transform:scaleY(1)}
  155. @keyframes facebook {
  156. 0% {transform:scaleY(.7);opacity:.1}
  157. 50% {transform:scaleY(1);opacity:1}
  158. 100% {transform:scaleY(.7);opacity:.1}
  159. }
  160. /* rotation */
  161. .waitMe_container .waitMe_progress.rotation > div {width:60px;height:60px;margin:auto;border-radius:100%;border-width:6px;border-style:solid;border-left-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important;animation:rotation 1s infinite linear}
  162. @keyframes rotation {
  163. 0% {transform:rotate(0deg)}
  164. 100% {transform:rotate(360deg)}
  165. }
  166. /* timer */
  167. .waitMe_container .waitMe_progress.timer {width:40px;height:40px;margin:auto;border-width:2px;border-style:solid;border-radius:50%;box-sizing:border-box;position:relative;text-indent:-9999px}
  168. .waitMe_container .waitMe_progress.timer > .waitMe_progress_elem1,
  169. .waitMe_container .waitMe_progress.timer > .waitMe_progress_elem2 {border-radius:3px;position:absolute;width:2px;height:48%;left:50%;top:50%;margin-left:-1px;margin-top:-1px;animation:timer 1.25s infinite linear;transform-origin:1px 1px}
  170. .waitMe_container .waitMe_progress.timer > .waitMe_progress_elem2 {height:40%;animation:timer 15s infinite linear}
  171. @keyframes timer {
  172. 0% {transform:rotate(0deg)}
  173. 100% {transform:rotate(360deg)}
  174. }
  175. /* pulse */
  176. .waitMe_container .waitMe_progress.pulse {width:30px;height:30px;margin:auto;position:relative}
  177. .waitMe_container .waitMe_progress.pulse > div {margin:auto;top:0;left:0;right:0;bottom:0;border-width:3px;border-style:solid;border-radius:50%;position:absolute;opacity:0;animation:pulsate 1s infinite ease-out}
  178. @keyframes pulsate {
  179. 0% {transform:scale(.1);opacity:0}
  180. 50% {opacity:1}
  181. 100% {transform:scale(1.2);opacity:0}
  182. }
  183. /* progressBar */
  184. .waitMe_container .waitMe_progress.progressBar {width:200px;height:20px;margin:auto;background:rgba(0,0,0,.1);padding:5px;border-radius:20px;line-height:0;max-width:100%}
  185. .waitMe_container .waitMe_progress.progressBar > div {width:100%;height:100%;overflow:hidden;border-radius:20px;background-size:50px 50px;box-shadow:inset 0 2px 9px rgba(255,255,255,.3), inset 0 -2px 6px rgba(0,0,0,.4);background-image:linear-gradient(-45deg, rgba(240,240,240,.4) 26%, transparent 25%, transparent 51%, rgba(240,240,240,.4) 50%, rgba(240,240,240,.4) 76%, transparent 75%, transparent);animation:progressBar 2s linear infinite}
  186. @keyframes progressBar {
  187. 0% {background-position:0 0}
  188. 100% {background-position:50px 50px}
  189. }
  190. /* bouncePulse */
  191. .waitMe_container .waitMe_progress.bouncePulse > div {width:20px;height:20px;margin-right:1%;display:inline-block;border-radius:50%;transform:scale(.5);animation:bouncePulse 1.4s infinite ease-in-out}
  192. .waitMe_container .waitMe_progress.bouncePulse > .waitMe_progress_elem1,
  193. .waitMe_container .waitMe_progress.bouncePulse > .waitMe_progress_elem3 {animation-delay:.3s}
  194. .waitMe_container .waitMe_progress.bouncePulse > .waitMe_progress_elem2 {animation-delay:.1s}
  195. @keyframes bouncePulse {
  196. 0%, 90%, 100% {transform:scale(.5)}
  197. 45% {transform:scale(1)}
  198. }