/* ===== 下拉刷新通用工具样式 ===== */
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;
}