/* components/loading/loading.wxss */ .loading-container { position: fixed; top: 0; left: 0; right: 0; bottom: 0; z-index: 9999; display: flex; align-items: center; justify-content: center; } .loading-mask { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background-color: rgba(0, 0, 0, 0.5); } .loading-content { position: relative; z-index: 10000; } /* 骨架屏 */ .skeleton { background-color: #ffffff; border-radius: 12rpx; padding: 30rpx; width: 600rpx; } .skeleton-avatar { width: 100rpx; height: 100rpx; border-radius: 50%; background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%); background-size: 200% 100%; animation: skeleton-loading 1.5s infinite; } .skeleton-lines { margin-top: 20rpx; } .skeleton-line { height: 30rpx; margin-bottom: 15rpx; border-radius: 4rpx; background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%); background-size: 200% 100%; animation: skeleton-loading 1.5s infinite; } .skeleton-line:nth-child(1) { width: 100%; } .skeleton-line:nth-child(2) { width: 80%; } .skeleton-line:nth-child(3) { width: 60%; } @keyframes skeleton-loading { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } } /* 加载动画 */ .loading-spinner { background-color: rgba(0, 0, 0, 0.7); border-radius: 12rpx; padding: 40rpx; display: flex; flex-direction: column; align-items: center; } .spinner { width: 60rpx; height: 60rpx; border: 4rpx solid rgba(255, 255, 255, 0.3); border-top-color: #ffffff; border-radius: 50%; animation: spin 0.8s linear infinite; } @keyframes spin { to { transform: rotate(360deg); } } .loading-text { margin-top: 20rpx; color: #ffffff; font-size: 28rpx; } /* 进度条 */ .loading-progress { background-color: #ffffff; border-radius: 12rpx; padding: 40rpx; width: 500rpx; } .progress-bar { height: 8rpx; background-color: #E0E0E0; border-radius: 4rpx; overflow: hidden; } .progress-fill { height: 100%; background: linear-gradient(to right, #667eea, #764ba2); transition: width 0.3s; } .progress-text { display: block; text-align: center; margin-top: 20rpx; color: #666666; font-size: 28rpx; }