/* ===== 下拉刷新通用工具样式 ===== */ html.modal-open { overflow: hidden; } html.modal-open body { overflow: hidden; touch-action: none; } /* 被绑定的容器 */ .ptr-container { transition: transform 0.25s cubic-bezier(0.25, 0.46, 0.45, 0.94); } .ptr-container.ptr-pulling { transition: none; } /* 下拉刷新指示器(由 JS 动态插入在容器前) */ .ptr-indicator { position: absolute; top: 0; left: 0; right: 0; height: 56px; display: flex; align-items: center; justify-content: center; gap: 8px; transform: translateY(-100%); z-index: 100; pointer-events: none; background-color: var(--bex-page-bg, #0e0e0e); } .ptr-spinner { width: 20px; height: 20px; border: 2px solid var(--bex-border, #2c2c2c); border-top-color: var(--bex-brand, #fd6f23); border-radius: 50%; opacity: 0; transform: rotate(0deg); } .ptr-indicator.ptr-refreshing .ptr-spinner { animation: ptr-spin 0.8s linear infinite; } @keyframes ptr-spin { to { transform: rotate(360deg); } } .ptr-text { font-size: 13px; color: var(--bex-brand, #fd6f23); } /* 浅色主题 */ html.theme-light .ptr-indicator { background-color: #ffffff; } html.theme-light .ptr-spinner { border-color: #e5e5e5; border-top-color: #fd6f23; } html.theme-light .ptr-text { color: #888888; }