You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

633 lines
12 KiB

1 year ago
  1. page {
  2. background: #fff;
  3. /* padding-bottom: 100px; */
  4. /* background: #000;
  5. background: radial-gradient(#222, #000); */
  6. }
  7. .title{
  8. margin: 20rpx ;
  9. font-size: 25rpx;
  10. text-align: center;
  11. font-weight: bold;
  12. }
  13. .posibox{
  14. position: fixed;
  15. top: 50%;
  16. left: 50%;
  17. transform: translateX(-50%) translateY(-50%);
  18. z-index: 999999;
  19. padding: 10px 20px;
  20. border-radius: 15px;
  21. background:rgba(0, 0, 0, .3);
  22. }
  23. .posibox .text{
  24. font-size: 32rpx;
  25. color: #fff;
  26. }
  27. .box{
  28. /* width: 100px; */
  29. height: 40px;
  30. display: flex;
  31. align-items: center;
  32. justify-content: center;
  33. margin: 0 auto;
  34. overflow: unset;
  35. }
  36. .bg{
  37. position: fixed;
  38. top: 0;
  39. left: 0;
  40. width: 100%;
  41. height: 100%;
  42. background: #fff;
  43. opacity: 0;
  44. }
  45. /* 第一个 */
  46. .ring {
  47. position: relative;
  48. margin: 40rpx auto;
  49. width: 80px;
  50. height: 80px;
  51. text-align: center; /* 字体水平居中 */
  52. line-height: 80px;
  53. font-size: 20px;
  54. letter-spacing: 4px;
  55. background: transparent;
  56. border: 2px solid #3c3c3c;
  57. border-radius: 50%;
  58. box-shadow: 0 0 20 rgba(0, 0, 0, .5);
  59. user-select: none; /* 无法选中 */
  60. }
  61. .ring::before {
  62. content: ''; /* 内容 */
  63. position: absolute;
  64. z-index: 99;
  65. top: -3px;
  66. left: -3px;
  67. width: 100%;
  68. height: 100%;
  69. border: 3px solid transparent;
  70. border-top: 3px solid #b3205d;
  71. border-right: 3px solid #771940;
  72. border-radius: 50%;
  73. animation: animateCircle 2s linear infinite; /* 动画:名称 时间 速率 重复 */
  74. }
  75. .line{
  76. display: block;
  77. position: absolute;
  78. top: calc(50% - 2px);
  79. left: 50%;
  80. width: 50%;
  81. height: 4px;
  82. background: transparent;
  83. transform-origin: left; /* 动画开始位置 */
  84. animation: animate 2s linear infinite;
  85. transform: rotate(45deg);
  86. }
  87. .line::before {
  88. content: '';
  89. position: absolute;
  90. width: 8px;
  91. height: 8px;
  92. border-radius: 50%;
  93. background: #b3205d;
  94. top: -4px;
  95. right: -4px;
  96. box-shadow: 0 0 20px #b3205d;
  97. }
  98. @keyframes animate {
  99. 100% {
  100. /* 360+45 */
  101. transform: rotate(405deg);
  102. }
  103. }
  104. @keyframes animateCircle {
  105. 0% {
  106. transform: rotate(0deg);
  107. }
  108. 100% {
  109. transform: rotate(360deg);
  110. }
  111. }
  112. /* 第二个 */
  113. .loading{
  114. position: relative;
  115. }
  116. .loading>view{
  117. position: absolute;
  118. width: 4px;
  119. height: 20px;
  120. border-radius: 10px;
  121. background-color: #b3205d;
  122. }
  123. .loading>view:nth-child(1){
  124. top: 20px;
  125. left: 0px;
  126. animation: loading infinite 1s;
  127. }
  128. .loading>view:nth-child(2){
  129. top: 14.1442px;
  130. left: 14.1442px;
  131. transform: rotate(-45deg);
  132. animation: loading infinite 1s 0.125s;
  133. }
  134. .loading>view:nth-child(3){
  135. top: 0px;
  136. left: 20px;
  137. transform: rotate(90deg);
  138. animation: loading infinite 1s 0.25s;
  139. }
  140. .loading>view:nth-child(4){
  141. top: -14.1442px;
  142. left: 14.1442px;
  143. transform: rotate(45deg);
  144. animation: loading infinite 1s 0.375s;
  145. }
  146. .loading>view:nth-child(5){
  147. top: -20px;
  148. left: 0px;
  149. transform: rotate(0deg);
  150. animation: loading infinite 1s 0.5s;
  151. }
  152. .loading>view:nth-child(6){
  153. top: -14.1442px;
  154. left: -14.1442px;
  155. transform: rotate(-45deg);
  156. animation: loading infinite 1s 0.625s;
  157. }
  158. .loading>view:nth-child(7){
  159. top: 0px;
  160. left: -20px;
  161. transform: rotate(90deg);
  162. animation: loading infinite 1s 0.75s;
  163. }
  164. .loading>view:nth-child(8){
  165. top: 14.1442px;
  166. left: -14.1442px;
  167. transform: rotate(45deg);
  168. animation: loading infinite 1s 0.875s;
  169. }
  170. @keyframes loading {
  171. 50% {
  172. opacity: 0.1;
  173. }
  174. 100% {
  175. opacity: 1;
  176. }
  177. }
  178. /* 第三个 */
  179. .circle-line,.circle-line1,.circle-add{
  180. width: 100px;
  181. height: 100px;
  182. display: inline-block;
  183. position: relative;
  184. }
  185. .circle-line text{
  186. display: block;
  187. width: 40px;
  188. height: 40px;
  189. border-radius: 50%;
  190. opacity: .7;
  191. position: absolute;
  192. top: calc(50% - 20px);
  193. left: calc(50% - 40px);
  194. background-color: #a8c992;
  195. transform-origin: center right;
  196. animation: circle 1.5s linear infinite;
  197. }
  198. .circle-line text:nth-child(1){
  199. transform: rotate(0deg);
  200. animation-delay: 0.2s;
  201. }
  202. .circle-line text:nth-child(2){
  203. transform: rotate(45deg);
  204. animation-delay: 0.4s;
  205. }
  206. .circle-line text:nth-child(3){
  207. transform: rotate(90deg);
  208. animation-delay: 0.6s;
  209. }
  210. .circle-line text:nth-child(4){
  211. transform: rotate(135deg);
  212. animation-delay: 0.8s;
  213. }
  214. .circle-line text:nth-child(5){
  215. transform: rotate(180deg);
  216. animation-delay: 1s;
  217. }
  218. .circle-line text:nth-child(6){
  219. transform: rotate(225deg);
  220. animation-delay: 1.2s;
  221. }
  222. .circle-line text:nth-child(7){
  223. transform: rotate(270deg);
  224. animation-delay: 1.4s;
  225. }
  226. .circle-line text:nth-child(8){
  227. transform: rotate(315deg);
  228. animation-delay: 1.6s;
  229. }
  230. @keyframes circle {
  231. 0%{
  232. opacity: 0.45;
  233. }
  234. 100%{
  235. opacity: 0.9;
  236. }
  237. }
  238. /* 第四个 */
  239. .circle-line1 text{
  240. display: block;
  241. width: 40px;
  242. height: 50px;
  243. border-radius: 50%;
  244. position: absolute;
  245. top: calc(50% - 25px);
  246. left: calc(50% - 40px);
  247. transform-origin: center right;
  248. animation: circle1 1.5s linear infinite;
  249. }
  250. .circle-line1 text::before{
  251. content: '';
  252. display: block;
  253. width: 8px;
  254. height: 8px;
  255. border-radius: 50%;
  256. position: absolute;
  257. top: 0;
  258. right: 10px;
  259. background-color: #a8c992;
  260. }
  261. .circle-line1 text:nth-child(1){
  262. transform: rotate(0deg);
  263. animation-delay: 0.2s;
  264. }
  265. .circle-line1 text:nth-child(2){
  266. transform: rotate(45deg);
  267. animation-delay: 0.4s;
  268. }
  269. .circle-line1 text:nth-child(3){
  270. transform: rotate(90deg);
  271. animation-delay: 0.6s;
  272. }
  273. .circle-line1 text:nth-child(4){
  274. transform: rotate(135deg);
  275. animation-delay: 0.8s;
  276. }
  277. .circle-line1 text:nth-child(5){
  278. transform: rotate(180deg);
  279. animation-delay: 1s;
  280. }
  281. .circle-line1 text:nth-child(6){
  282. transform: rotate(225deg);
  283. animation-delay: 1.2s;
  284. }
  285. .circle-line1 text:nth-child(7){
  286. transform: rotate(270deg);
  287. animation-delay: 1.4s;
  288. }
  289. .circle-line1 text:nth-child(8){
  290. transform: rotate(315deg);
  291. animation-delay: 1.6s;
  292. }
  293. @keyframes circle1 {
  294. 0%{
  295. opacity: 0.15;
  296. }
  297. 100%{
  298. opacity: 0.9;
  299. }
  300. }
  301. /* 第五个 */
  302. .circle-line-spin{
  303. position: relative;
  304. animation: circle-line 1.5s linear infinite;
  305. }
  306. .circle-line-spin text{
  307. display: block;
  308. width: 50%;
  309. height: 5px;
  310. opacity: .7;
  311. position: absolute;
  312. top: calc(50% - 2.5px);
  313. left: 0px;
  314. transform-origin: center right;
  315. }
  316. .circle-line-spin text::before{
  317. content: '';
  318. display: block;
  319. width: 15px;
  320. height: 5px;
  321. position: absolute;
  322. top: 0;
  323. right: 10px;
  324. background-color: #a8c992;
  325. }
  326. .circle-line-spin text:nth-child(1){
  327. transform: rotate(0deg);
  328. animation-delay: 0.2s;
  329. }
  330. .circle-line-spin text:nth-child(2){
  331. transform: rotate(45deg);
  332. animation-delay: 0.4s;
  333. }
  334. .circle-line-spin text:nth-child(3){
  335. transform: rotate(90deg);
  336. animation-delay: 0.6s;
  337. }
  338. .circle-line-spin text:nth-child(4){
  339. transform: rotate(135deg);
  340. animation-delay: 0.8s;
  341. }
  342. .circle-line-spin text:nth-child(5){
  343. transform: rotate(180deg);
  344. animation-delay: 1s;
  345. }
  346. .circle-line-spin text:nth-child(6){
  347. transform: rotate(225deg);
  348. animation-delay: 1.2s;
  349. }
  350. .circle-line-spin text:nth-child(7){
  351. transform: rotate(270deg);
  352. animation-delay: 1.4s;
  353. }
  354. .circle-line-spin text:nth-child(8){
  355. transform: rotate(315deg);
  356. animation-delay: 1.6s;
  357. }
  358. @keyframes circle-line {
  359. 0%{
  360. transform:rotate(-360deg);
  361. }
  362. 100%{
  363. transform:rotate(10deg);
  364. }
  365. }
  366. /* 第六个 */
  367. .circle-line2{
  368. position: relative;
  369. }
  370. .circle-line2 text{
  371. display: block;
  372. width: 40px;
  373. height: 50px;
  374. border-radius: 50%;
  375. position: absolute;
  376. top: calc(50% - 25px);
  377. left: calc(50% - 40px);
  378. transform-origin: center right;
  379. animation: circle2 1.5s linear infinite;
  380. }
  381. .circle-line2 text::before{
  382. content: '';
  383. display: block;
  384. width: 8px;
  385. height: 8px;
  386. border-radius: 50%;
  387. position: absolute;
  388. top: 0;
  389. right: 10px;
  390. background-color: #22a2c2;
  391. }
  392. .circle-line2 text:nth-child(1){
  393. transform: rotate(0deg);
  394. animation-delay: 0.2s;
  395. }
  396. .circle-line2 text:nth-child(2){
  397. transform: rotate(45deg);
  398. animation-delay: 0.4s;
  399. }
  400. .circle-line2 text:nth-child(3){
  401. transform: rotate(90deg);
  402. animation-delay: 0.6s;
  403. }
  404. .circle-line2 text:nth-child(4){
  405. transform: rotate(135deg);
  406. animation-delay: 0.8s;
  407. }
  408. .circle-line2 text:nth-child(5){
  409. transform: rotate(180deg);
  410. animation-delay: 1s;
  411. }
  412. .circle-line2 text:nth-child(6){
  413. transform: rotate(225deg);
  414. animation-delay: 1.2s;
  415. }
  416. .circle-line2 text:nth-child(7){
  417. transform: rotate(270deg);
  418. animation-delay: 1.4s;
  419. }
  420. .circle-line2 text:nth-child(8){
  421. transform: rotate(315deg);
  422. animation-delay: 1.6s;
  423. }
  424. @keyframes circle2 {
  425. 0%{
  426. opacity: 0.15;
  427. transform:rotate(-360deg);
  428. }
  429. 100%{
  430. opacity: 0.9;
  431. transform:rotate(360deg);
  432. }
  433. }
  434. /* 样式七 */
  435. .circle_bx{
  436. position: relative;
  437. }
  438. .circle_bx view{
  439. display: inline-block;
  440. position: relative;
  441. border-radius: 50%;
  442. border-top: 48px #22a2c2 solid;
  443. border-bottom: 48px #22a2c2 solid;
  444. border-left: 48px #22a2c2 solid;
  445. border-right: 48px transparent solid;
  446. color: #22a2c2;
  447. animation: circle_bx 1s linear infinite ;
  448. }
  449. /* box-shadow: h-shadow v-shadow blur spread color inset; */
  450. @keyframes circle_bx {
  451. 0% {
  452. box-shadow: 120px 0px 0 -40px rgba(55, 145, 197, 0.5),
  453. 100px 0px 0 -40px rgba(62, 96, 119, 0.75),
  454. 80px 0px 0 -40px rgb(24, 149, 221);
  455. }
  456. 100% {
  457. box-shadow: 100px 0px 0 -45px rgba(9, 150, 206, 0.5),
  458. 80px 0px 0 -45px rgba(84, 100, 117, 0.75),
  459. 60px 0px 0 -45px rgb(8, 78, 90);
  460. }
  461. }
  462. .circle_bx view::before {
  463. position: absolute;
  464. border-radius: 50%;
  465. content: '';
  466. top: -48px;
  467. left: -48px;
  468. border-top: 48px #22a2c2 solid;
  469. border-bottom: 48px transparent solid;
  470. border-left: 48px transparent solid;
  471. border-right: 48px transparent solid;
  472. animation: ccc .5s linear infinite alternate;
  473. }
  474. @keyframes ccc {
  475. 0% {
  476. transform: rotate(45deg)
  477. }
  478. 100% {
  479. transform: rotate(0deg)
  480. }
  481. }
  482. .circle_bx view::after {
  483. position: absolute;
  484. content: '';
  485. top: -48px;
  486. left: -48px;
  487. border-top: 48px transparent solid;
  488. border-bottom: 48px #22a2c2 solid;
  489. border-left: 48px transparent solid;
  490. border-right: 48px transparent solid;
  491. border-radius: 50%;
  492. animation: bbb .5s linear infinite alternate;
  493. }
  494. @keyframes bbb {
  495. 0% {
  496. transform: rotate(-45deg)
  497. }
  498. 100% {
  499. transform: rotate(0deg)
  500. }
  501. }
  502. /* di8个 */
  503. .loader-dots view{
  504. width: 10px;
  505. height: 10px;
  506. background: #3ac;
  507. border-radius: 50%;
  508. display:inline-block;
  509. animation: slide 1s infinite;
  510. }
  511. .loader-dots view:nth-child(1){
  512. animation-delay:.1s;
  513. }
  514. .loader-dots view:nth-child(2){
  515. animation-delay:.2s;
  516. }
  517. .loader-dots view:nth-child(3){
  518. animation-delay:.3s;
  519. }
  520. .loader-dots view:nth-child(4){
  521. animation-delay:.4s;
  522. background: linear-gradient(#9403b8,#3ac)
  523. }
  524. .loader-dots view:nth-child(5){
  525. animation-delay:.5s;
  526. background:radial-gradient(#6d9b93,#3ac)
  527. }
  528. @keyframes slide{
  529. 0%{
  530. transform: scale(1)
  531. }
  532. 50%
  533. {
  534. opacity:0.3;
  535. transform:scale(2);
  536. }
  537. 100%{
  538. transform: scale(1)
  539. }
  540. }
  541. /* 9个 */
  542. .loader-rainbow{
  543. position: relative;
  544. width:100px;
  545. height: 100px;
  546. }
  547. .loader-inner {
  548. bottom: 0;
  549. height: 100px;
  550. left: 0;
  551. margin: auto;
  552. position: absolute;
  553. right: 0;
  554. top: 0;
  555. width: 100px;
  556. }
  557. .loader-line-wrap {
  558. animation:
  559. spin 2000ms cubic-bezier(.175, .885, .32, 1.275) infinite
  560. ;
  561. box-sizing: border-box;
  562. height: 50px;
  563. left: 0;
  564. overflow: hidden;
  565. position: absolute;
  566. top: 0;
  567. transform-origin: 50% 100%;
  568. width: 100px;
  569. }
  570. .loader-line {
  571. border: 4px solid transparent;
  572. border-radius: 100%;
  573. box-sizing: border-box;
  574. height: 100px;
  575. left: 0;
  576. margin: 0 auto;
  577. position: absolute;
  578. right: 0;
  579. top: 0;
  580. width: 100px;
  581. }
  582. .loader-line-wrap:nth-child(1) { animation-delay: -50ms; }
  583. .loader-line-wrap:nth-child(2) { animation-delay: -100ms; }
  584. .loader-line-wrap:nth-child(3) { animation-delay: -150ms; }
  585. .loader-line-wrap:nth-child(4) { animation-delay: -200ms; }
  586. .loader-line-wrap:nth-child(5) { animation-delay: -250ms; }
  587. .loader-line-wrap:nth-child(1) .loader-line {
  588. border-color: hsl(0, 80%, 60%);
  589. height: 90px;
  590. width: 90px;
  591. top: 7px;
  592. }
  593. .loader-line-wrap:nth-child(2) .loader-line {
  594. border-color: hsl(60, 80%, 60%);
  595. height: 76px;
  596. width: 76px;
  597. top: 14px;
  598. }
  599. .loader-line-wrap:nth-child(3) .loader-line {
  600. border-color: hsl(120, 80%, 60%);
  601. height: 62px;
  602. width: 62px;
  603. top: 21px;
  604. }
  605. .loader-line-wrap:nth-child(4) .loader-line {
  606. border-color: hsl(180, 80%, 60%);
  607. height: 48px;
  608. width: 48px;
  609. top: 28px;
  610. }
  611. .loader-line-wrap:nth-child(5) .loader-line {
  612. border-color: hsl(240, 80%, 60%);
  613. height: 34px;
  614. width: 34px;
  615. top: 35px;
  616. }
  617. @keyframes spin {
  618. 0%, 15% {
  619. transform: rotate(0);
  620. }
  621. 100% {
  622. transform: rotate(360deg);
  623. }
  624. }