.movable-area { width: 100%; height: 100vh; } .scroll { width: 100%; height: calc(100vh + 90rpx); } .scroll__view { height: 100%; position: relative; box-sizing: border-box; } .scroll__refresh { height: 90rpx; position: relative; } .scroll__refresh--hidden { visibility: hidden; } .scroll__bottom { position: relative; height: 40rpx; padding: 40rpx 0; } .scroll__loading { position: absolute; top: 50%; left: 0; right: 0; transform: translateY(-50%); text-align: center; color: #999; } .scroll__loading .text { display: inline-block; vertical-align: middle; margin-left: 40rpx; } .success { position: absolute; z-index: 9; top: 20rpx; left: 0; width: 100%; height: 70rpx; line-height: 70rpx; font-size: 24rpx; text-align: center; opacity: 0; transform: scale(0); color: #3f82fd; } .success:after { content: " "; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: currentColor; opacity: 0.7; transform: scaleX(0); transition: transform 0.3s ease-in-out; z-index: 0; } .success > .info { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 1; color: #fff; } .success--show { opacity: 1; transform: scale(1); } .success--show:after { transform: scaleX(1); } .success--tran { opacity: 0; transform: translateY(-100%); transition: opacity 0.35s linear, transform 0.35s linear; } .empty { padding: 30rpx; text-align: center; } .empty__image { width: 200rpx; height: 200rpx; margin: 160rpx auto 60rpx; } .empty__text { color: #999; } .arrow { position: relative; border-radius: 4rpx; width: 4rpx; height: 30rpx; background: #a5a5a5; transition: transform 0.15s ease-in-out; display: inline-block; vertical-align: middle; } .arrow:before { position: absolute; content: ""; bottom: -4rpx; right: 50%; width: 4rpx; height: 16rpx; transform: rotate(45deg); transform-origin: 100% 100%; background: #a5a5a5; border-radius: 4rpx; } .arrow:after { position: absolute; content: ""; bottom: -4rpx; left: 50%; width: 4rpx; height: 16rpx; transform: rotate(-45deg); transform-origin: 0% 100%; background: #a5a5a5; border-radius: 4rpx; } .arrow.rotate { transform: rotate(-180deg); } .loading { position: relative; display: inline-block; vertical-align: middle; width: 36rpx; height: 36rpx; margin-right: -14rpx; } .loading__item { position: absolute; top: 0; left: 0; width: 36rpx; height: 36rpx; } .loading__item:before { content: ""; display: block; margin: 0 auto; width: 4rpx; height: 8rpx; background-color: #a5a5a5; border-radius: 4rpx; animation: fadeDelay 1.2s infinite ease-in-out both; } .loading__item:nth-child(2) { transform: rotate(30deg); } .loading__item:nth-child(2):before { animation-delay: -1.1s; } .loading__item:nth-child(3) { transform: rotate(60deg); } .loading__item:nth-child(3):before { animation-delay: -1s; } .loading__item:nth-child(4) { transform: rotate(90deg); } .loading__item:nth-child(4):before { animation-delay: -0.9s; } .loading__item:nth-child(5) { transform: rotate(120deg); } .loading__item:nth-child(5):before { animation-delay: -0.8s; } .loading__item:nth-child(6) { transform: rotate(150deg); } .loading__item:nth-child(6):before { animation-delay: -0.7s; } .loading__item:nth-child(7) { transform: rotate(180deg); } .loading__item:nth-child(7):before { animation-delay: -0.6s; } .loading__item:nth-child(8) { transform: rotate(210deg); } .loading__item:nth-child(8):before { animation-delay: -0.5s; } .loading__item:nth-child(9) { transform: rotate(240deg); } .loading__item:nth-child(9):before { animation-delay: -0.4s; } .loading__item:nth-child(10) { transform: rotate(270deg); } .loading__item:nth-child(10):before { animation-delay: -0.3s; } .loading__item:nth-child(11) { transform: rotate(300deg); } .loading__item:nth-child(11):before { animation-delay: -0.2s; } .loading__item:nth-child(12) { transform: rotate(330deg); } .loading__item:nth-child(12):before { animation-delay: -0.1s; } @keyframes fadeDelay { 0%, 39%, 100% { opacity: 0.2; } 40% { opacity: 1; } } @-webkit-keyframes fadeDelay { 0%, 39%, 100% { opacity: 0.2; } 40% { opacity: 1; } }