All checks were successful
continuous-integration/drone/push Build is passing
- popup 加 ::before 透明桥接区域(16px),鼠标可以移到弹窗上 - 回到顶部按钮去掉深色背景,SVG 放大到 42px,默认半透明
266 lines
4.7 KiB
CSS
266 lines
4.7 KiB
CSS
/* ============================================
|
|
右侧浮窗组件 — float-widget
|
|
============================================ */
|
|
|
|
.float-widget {
|
|
position: fixed;
|
|
right: 20px;
|
|
bottom: 100px;
|
|
z-index: 9998;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 6px;
|
|
}
|
|
|
|
/* 单个浮窗按钮 */
|
|
.fw-item {
|
|
position: relative;
|
|
width: 44px;
|
|
height: 44px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
background: rgba(14, 16, 26, 0.88);
|
|
border: 1px solid rgba(255, 255, 255, 0.06);
|
|
border-radius: 12px;
|
|
cursor: pointer;
|
|
transition: all 0.25s ease;
|
|
backdrop-filter: blur(12px);
|
|
-webkit-backdrop-filter: blur(12px);
|
|
}
|
|
|
|
.fw-item:hover {
|
|
background: rgba(30, 41, 59, 0.95);
|
|
border-color: rgba(56, 189, 248, 0.15);
|
|
transform: translateX(-4px);
|
|
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3);
|
|
}
|
|
|
|
.fw-item svg {
|
|
width: 22px;
|
|
height: 22px;
|
|
opacity: 0.7;
|
|
transition: opacity 0.2s ease;
|
|
}
|
|
|
|
.fw-item:hover svg {
|
|
opacity: 1;
|
|
}
|
|
|
|
/* ---- 弹出面板 ---- */
|
|
.fw-popup {
|
|
position: absolute;
|
|
right: calc(100% + 12px);
|
|
top: 50%;
|
|
transform: translateY(-50%);
|
|
min-width: 200px;
|
|
background: rgba(14, 16, 26, 0.96);
|
|
border: 1px solid rgba(255, 255, 255, 0.08);
|
|
border-radius: 14px;
|
|
padding: 16px 20px;
|
|
opacity: 0;
|
|
visibility: hidden;
|
|
transition: all 0.2s ease;
|
|
pointer-events: none;
|
|
backdrop-filter: blur(20px);
|
|
-webkit-backdrop-filter: blur(20px);
|
|
box-shadow: 0 12px 40px rgba(0, 0, 0, 0.4);
|
|
white-space: nowrap;
|
|
}
|
|
|
|
/* 透明桥接区域:从 popup 右侧延伸到按钮,防止鼠标移向弹窗时中断 hover */
|
|
.fw-popup::before {
|
|
content: '';
|
|
position: absolute;
|
|
top: 0;
|
|
right: -16px;
|
|
width: 16px;
|
|
height: 100%;
|
|
}
|
|
|
|
/* 小三角 */
|
|
.fw-popup::after {
|
|
content: '';
|
|
position: absolute;
|
|
right: -6px;
|
|
top: 50%;
|
|
transform: translateY(-50%) rotate(45deg);
|
|
width: 10px;
|
|
height: 10px;
|
|
background: rgba(14, 16, 26, 0.96);
|
|
border-right: 1px solid rgba(255, 255, 255, 0.08);
|
|
border-top: 1px solid rgba(255, 255, 255, 0.08);
|
|
}
|
|
|
|
.fw-item:hover .fw-popup {
|
|
opacity: 1;
|
|
visibility: visible;
|
|
pointer-events: auto;
|
|
}
|
|
|
|
/* 面板标题 */
|
|
.fw-popup-title {
|
|
font-size: 13px;
|
|
font-weight: 600;
|
|
color: rgba(226, 232, 240, 0.9);
|
|
margin-bottom: 12px;
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
}
|
|
|
|
.fw-popup-title svg {
|
|
width: 14px;
|
|
height: 14px;
|
|
opacity: 0.5;
|
|
}
|
|
|
|
/* ---- QQ 客服样式 ---- */
|
|
.fw-qq-list {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 10px;
|
|
}
|
|
|
|
.fw-qq-entry {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 12px;
|
|
padding: 8px 12px;
|
|
background: rgba(30, 41, 59, 0.3);
|
|
border-radius: 8px;
|
|
transition: background 0.2s ease;
|
|
text-decoration: none;
|
|
color: inherit;
|
|
}
|
|
|
|
.fw-qq-entry:hover {
|
|
background: rgba(30, 41, 59, 0.5);
|
|
}
|
|
|
|
.fw-qq-avatar {
|
|
width: 32px;
|
|
height: 32px;
|
|
border-radius: 50%;
|
|
background: rgba(56, 189, 248, 0.1);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.fw-qq-avatar svg {
|
|
width: 18px;
|
|
height: 18px;
|
|
opacity: 0.6;
|
|
}
|
|
|
|
.fw-qq-info {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 2px;
|
|
}
|
|
|
|
.fw-qq-num {
|
|
font-size: 13px;
|
|
color: rgba(226, 232, 240, 0.85);
|
|
font-weight: 500;
|
|
}
|
|
|
|
.fw-qq-time {
|
|
font-size: 11px;
|
|
color: rgba(148, 163, 184, 0.5);
|
|
}
|
|
|
|
/* 状态/复制提示 */
|
|
.fw-qq-status {
|
|
font-size: 11px;
|
|
color: rgba(148, 163, 184, 0.5);
|
|
flex-shrink: 0;
|
|
white-space: nowrap;
|
|
margin-left: auto;
|
|
transition: color 0.2s ease;
|
|
}
|
|
|
|
/* ---- 二维码样式(群聊 / 公众号) ---- */
|
|
.fw-qr {
|
|
text-align: center;
|
|
}
|
|
|
|
.fw-qr img {
|
|
width: 140px;
|
|
height: 140px;
|
|
border-radius: 8px;
|
|
background: #fff;
|
|
padding: 6px;
|
|
margin-bottom: 8px;
|
|
}
|
|
|
|
.fw-qr-hint {
|
|
font-size: 11px;
|
|
color: rgba(148, 163, 184, 0.5);
|
|
}
|
|
|
|
/* ---- 在线客服 —— 无弹出框,直接跳转 ---- */
|
|
.fw-item[data-type="service"] .fw-popup {
|
|
padding: 10px 16px;
|
|
min-width: auto;
|
|
}
|
|
|
|
.fw-service-hint {
|
|
font-size: 12px;
|
|
color: rgba(226, 232, 240, 0.7);
|
|
}
|
|
|
|
/* ---- 回到顶部按钮融合 ---- */
|
|
.fw-back-top {
|
|
opacity: 0;
|
|
visibility: hidden;
|
|
transition: all 0.25s ease;
|
|
background: transparent !important;
|
|
border: none !important;
|
|
backdrop-filter: none !important;
|
|
-webkit-backdrop-filter: none !important;
|
|
box-shadow: none !important;
|
|
}
|
|
|
|
.fw-back-top.show {
|
|
opacity: 1;
|
|
visibility: visible;
|
|
}
|
|
|
|
.fw-back-top svg {
|
|
width: 42px;
|
|
height: 42px;
|
|
opacity: 0.5;
|
|
transition: opacity 0.2s ease;
|
|
}
|
|
|
|
.fw-back-top:hover svg {
|
|
opacity: 0.9;
|
|
}
|
|
|
|
/* ---- 移动端 ---- */
|
|
@media (max-width: 768px) {
|
|
.float-widget {
|
|
right: 12px;
|
|
bottom: 80px;
|
|
gap: 4px;
|
|
}
|
|
|
|
.fw-item {
|
|
width: 38px;
|
|
height: 38px;
|
|
border-radius: 10px;
|
|
}
|
|
|
|
.fw-item svg {
|
|
width: 18px;
|
|
height: 18px;
|
|
}
|
|
|
|
.fw-popup {
|
|
display: none !important;
|
|
}
|
|
}
|