guide.scss 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217
  1. page, .hc-guide-swiper-page {
  2. height: 100%;
  3. }
  4. .hc-guide-swiper-page {
  5. position: relative;
  6. width: 100%;
  7. .hc-swiper-dot {
  8. position: absolute;
  9. font-size: 0;
  10. left: 45%;
  11. bottom: 80rpx;
  12. text-align: center;
  13. white-space: nowrap;
  14. transform: translateX(-50%, 0);
  15. .dots {
  16. display: inline-block;
  17. width: 16rpx;
  18. height: 16rpx;
  19. border-radius: 50%;
  20. background-color: rgba(0, 0, 0, 0.3);
  21. transition-property: background-color;
  22. transition-timing-function: ease;
  23. transition: background-color .3s, width .3s;
  24. &.cur {
  25. background-color: #000;
  26. width: 32rpx;
  27. border-radius: 16rpx;
  28. }
  29. }
  30. .dots + .dots {
  31. margin-left: 16rpx;
  32. }
  33. }
  34. }
  35. .hc-guide-swiper {
  36. position: relative;
  37. height: 100%;
  38. .hc-guide-item {
  39. position: relative;
  40. height: 100%;
  41. display: flex;
  42. align-items: center;
  43. justify-content: center;
  44. .title-box {
  45. position: absolute;
  46. top: 10%;
  47. width: 100%;
  48. text-align: center;
  49. .title {
  50. opacity: 0;
  51. color: #101010;
  52. font-size: 56rpx;
  53. transform-origin: 104rpx 37rpx;
  54. animation-duration: 1s;
  55. animation-iteration-count: 1;
  56. animation-fill-mode: backwards;
  57. transition: opacity .5s;
  58. }
  59. .text {
  60. opacity: 0;
  61. color: #8e8e93;
  62. font-size: 34rpx;
  63. margin-top: 22rpx;
  64. }
  65. }
  66. .img-box {
  67. position: relative;
  68. display: flex;
  69. justify-content: center;
  70. align-items: center;
  71. .img-bg {
  72. opacity: 0;
  73. transform-origin: 262rpx 222rpx;
  74. animation-duration: 1s;
  75. animation-iteration-count: 1;
  76. animation-fill-mode: backwards;
  77. backface-visibility: visible !important;
  78. transition: opacity .3s;
  79. }
  80. .img-1 {
  81. opacity: 0;
  82. position: absolute;
  83. margin-left: -68rpx;
  84. margin-top: -80rpx;
  85. transform-origin: 155rpx 234rpx;
  86. animation-duration: 1s;
  87. animation-iteration-count: 1;
  88. animation-fill-mode: backwards;
  89. }
  90. .img-2 {
  91. opacity: 0;
  92. position: absolute;
  93. margin-top: 150rpx;
  94. transform-origin: 155rpx 234rpx;
  95. animation-duration: 1s;
  96. animation-iteration-count: 1;
  97. animation-fill-mode: backwards;
  98. }
  99. .img-3 {
  100. opacity: 0;
  101. position: absolute;
  102. margin-top: 66rpx;
  103. margin-right: -160rpx;
  104. transform-origin: 155rpx 234rpx;
  105. animation-duration: 1s;
  106. animation-iteration-count: 1;
  107. animation-fill-mode: backwards;
  108. z-index: 999999;
  109. }
  110. }
  111. .hc-btn-box {
  112. position: absolute;
  113. bottom: 12%;
  114. width: 600rpx;
  115. opacity: 0;
  116. transform-origin: 374rpx 1410rpx;
  117. animation-delay: 0s;
  118. animation-duration: 1.1s;
  119. animation-iteration-count: 1;
  120. animation-fill-mode: backwards;
  121. transition: opacity .3s;
  122. }
  123. &.animation {
  124. .title-box {
  125. .title {
  126. animation-name: slideInDown;
  127. opacity: 1;
  128. }
  129. .text {
  130. opacity: 1;
  131. }
  132. }
  133. .img-box {
  134. .img-bg {
  135. animation-name: flipInY;
  136. opacity: 1;
  137. }
  138. }
  139. &[cur="0"] {
  140. .img-1 {
  141. animation-name: tada;
  142. opacity: 1;
  143. }
  144. }
  145. &[cur="1"] {
  146. .img-2 {
  147. animation-name: tada;
  148. opacity: 1;
  149. }
  150. }
  151. &[cur="2"] {
  152. .img-3 {
  153. animation-name: tada;
  154. opacity: 1;
  155. }
  156. .hc-btn-box {
  157. animation-name: slideInUp;
  158. opacity: 1;
  159. }
  160. }
  161. }
  162. }
  163. }
  164. @keyframes slideInDown {
  165. 0% {
  166. transform: translate3d(0px, -100%, 0px);
  167. visibility: visible;
  168. }
  169. 100% {
  170. transform: translate3d(0px, 0px, 0px);
  171. }
  172. }
  173. @keyframes flipInY {
  174. 0% {
  175. transform: translatez(-100px) perspective(800rpx) rotate3d(0, 1, 0, 90deg);
  176. animation-timing-function: ease-in;
  177. }
  178. 40% {
  179. transform: translatez(-100px) perspective(800rpx) rotate3d(0, 1, 0, -20deg);
  180. animation-timing-function: ease-in;
  181. }
  182. 60% {
  183. transform: translatez(-100px) perspective(800rpx) rotate3d(0, 1, 0, 10deg);
  184. }
  185. 80% {
  186. transform: translatez(-100px) perspective(800rpx) rotate3d(0, 1, 0, -5deg);
  187. }
  188. 100% {
  189. transform: translatez(-100px) perspective(800rpx);
  190. }
  191. }
  192. @keyframes tada {
  193. 0% {
  194. transform: scale3d(1, 1, 1);
  195. }
  196. 10%, 20% {
  197. transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
  198. }
  199. 30%, 50%, 70%, 90% {
  200. transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
  201. }
  202. 40%, 60%, 80% {
  203. transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
  204. }
  205. 100% {
  206. transform: scale3d(1, 1, 1);
  207. }
  208. }
  209. @keyframes slideInUp {
  210. 0% {
  211. transform: translate3d(0px, 100%, 0px);
  212. visibility: visible;
  213. }
  214. 100% {
  215. transform: translate3d(0px, 0px, 0px);
  216. }
  217. }