Files
BlackFruit-UI/css/float-widget.css
yiqiu e2d7a5dc7c
All checks were successful
continuous-integration/drone/push Build is passing
fix: QQ弹窗加hover桥接区域 + 回到顶部按钮透明底
- popup 加 ::before 透明桥接区域(16px),鼠标可以移到弹窗上
- 回到顶部按钮去掉深色背景,SVG 放大到 42px,默认半透明
2026-03-18 23:07:52 +08:00

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;
}
}