generated from dellevin/template
532 lines
10 KiB
CSS
532 lines
10 KiB
CSS
/* ==================== 星空预览样式 ==================== */
|
||
|
||
/* 星空模式切换按钮(在弹窗header中) - 透明玻璃效果 + 黑色字体 */
|
||
.galaxy-toggle-btn {
|
||
display: none; /* 隐藏旧按钮 */
|
||
}
|
||
|
||
/* 模式切换容器 */
|
||
.mode-switch-container {
|
||
margin-right: 12px;
|
||
}
|
||
|
||
/* 模式切换按钮 */
|
||
.mode-switch-btn {
|
||
display: flex;
|
||
background: rgba(0, 0, 0, 0.05);
|
||
border: 1px solid rgba(0, 0, 0, 0.15);
|
||
border-radius: 6px;
|
||
padding: 2px;
|
||
cursor: pointer;
|
||
gap: 2px;
|
||
}
|
||
|
||
.mode-label {
|
||
padding: 6px 12px;
|
||
font-size: 13px;
|
||
color: #666;
|
||
border-radius: 4px;
|
||
transition: all 0.3s ease;
|
||
}
|
||
|
||
.mode-label.active {
|
||
background: rgba(0, 0, 0, 0.1);
|
||
color: #1a1a1a;
|
||
}
|
||
|
||
.mode-label:hover:not(.active) {
|
||
color: #333;
|
||
}
|
||
|
||
/* 瀑布模式容器 */
|
||
.waterfall-wrapper {
|
||
display: none;
|
||
flex: 1;
|
||
overflow-y: auto;
|
||
padding: 20px;
|
||
background: linear-gradient(180deg, #f5f5f5 0%, #fff 100%);
|
||
}
|
||
|
||
.waterfall-wrapper.active {
|
||
display: block;
|
||
}
|
||
|
||
.waterfall-container {
|
||
column-count: 3;
|
||
column-gap: 16px;
|
||
max-width: 1200px;
|
||
margin: 0 auto;
|
||
}
|
||
|
||
/* 星空模式header样式 */
|
||
.galaxy-mode-header {
|
||
background: rgba(10, 10, 46, 0.95) !important;
|
||
border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
|
||
}
|
||
|
||
.galaxy-mode-header h2 {
|
||
color: #fff !important;
|
||
text-shadow: 0 0 10px rgba(255, 215, 0, 0.5), 0 1px 2px rgba(0, 0, 0, 0.5) !important;
|
||
}
|
||
|
||
.galaxy-mode-header .guestbook-close {
|
||
background: rgba(255, 255, 255, 0.1) !important;
|
||
border: 1px solid rgba(255, 255, 255, 0.2) !important;
|
||
color: #fff !important;
|
||
}
|
||
|
||
.galaxy-mode-header .guestbook-close:hover {
|
||
background: rgba(255, 0, 0, 0.5) !important;
|
||
border-color: rgba(255, 0, 0, 0.6) !important;
|
||
}
|
||
|
||
.galaxy-mode-header .mode-switch-btn {
|
||
background: rgba(255, 255, 255, 0.1) !important;
|
||
border: 1px solid rgba(255, 255, 255, 0.2) !important;
|
||
}
|
||
|
||
.galaxy-mode-header .mode-label {
|
||
color: rgba(255, 255, 255, 0.7) !important;
|
||
}
|
||
|
||
.galaxy-mode-header .mode-label.active {
|
||
background: rgba(255, 255, 255, 0.2) !important;
|
||
color: #fff !important;
|
||
}
|
||
|
||
.waterfall-item {
|
||
break-inside: avoid;
|
||
margin-bottom: 16px;
|
||
background: #fff;
|
||
border-radius: 12px;
|
||
overflow: hidden;
|
||
box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
|
||
transition: transform 0.3s ease, box-shadow 0.3s ease;
|
||
cursor: pointer;
|
||
}
|
||
|
||
.waterfall-item:hover {
|
||
transform: translateY(-4px);
|
||
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
|
||
}
|
||
|
||
.waterfall-item img {
|
||
width: 100%;
|
||
display: block;
|
||
border-radius: 12px 12px 0 0;
|
||
}
|
||
|
||
.waterfall-item-info {
|
||
padding: 12px;
|
||
font-size: 12px;
|
||
color: #666;
|
||
text-align: center;
|
||
background: #fff;
|
||
}
|
||
|
||
/* 响应式设计 */
|
||
@media (max-width: 900px) {
|
||
.waterfall-container {
|
||
column-count: 2;
|
||
}
|
||
}
|
||
|
||
@media (max-width: 600px) {
|
||
.waterfall-container {
|
||
column-count: 1;
|
||
}
|
||
}
|
||
|
||
.header-controls {
|
||
display: flex;
|
||
align-items: center;
|
||
}
|
||
|
||
/* 星空画布容器(在弹窗内) */
|
||
.galaxy-canvas-wrapper {
|
||
display: none;
|
||
flex: 1;
|
||
position: relative;
|
||
background: radial-gradient(ellipse at center, #1a1a3e 0%, #0a0a2e 50%, #050520 100%);
|
||
overflow: hidden;
|
||
}
|
||
|
||
.galaxy-canvas-wrapper.active {
|
||
display: block;
|
||
}
|
||
|
||
/* 星空背景动画 - 繁杂无序 */
|
||
.galaxy-canvas-wrapper::before {
|
||
content: '';
|
||
position: absolute;
|
||
top: 0;
|
||
left: 0;
|
||
right: 0;
|
||
bottom: 0;
|
||
background-image: url('../img/planets/bg.jpg');
|
||
background-size: cover;
|
||
background-position: center;
|
||
pointer-events: none;
|
||
z-index: 0;
|
||
}
|
||
|
||
.galaxy-canvas-wrapper canvas {
|
||
width: 100%;
|
||
height: 100%;
|
||
display: block;
|
||
position: relative;
|
||
z-index: 1;
|
||
}
|
||
|
||
.galaxy-tip {
|
||
position: absolute;
|
||
bottom: 20px;
|
||
left: 50%;
|
||
transform: translateX(-50%);
|
||
background: rgba(0, 0, 0, 0.6);
|
||
color: rgba(255, 255, 255, 0.8);
|
||
padding: 8px 16px;
|
||
border-radius: 20px;
|
||
font-size: 12px;
|
||
pointer-events: none;
|
||
opacity: 0;
|
||
transition: opacity 0.3s ease;
|
||
}
|
||
|
||
.galaxy-canvas-wrapper.active .galaxy-tip {
|
||
opacity: 1;
|
||
animation: fadeInOut 3s ease-in-out forwards;
|
||
}
|
||
|
||
@keyframes fadeInOut {
|
||
0%, 100% { opacity: 0; }
|
||
20%, 80% { opacity: 1; }
|
||
}
|
||
|
||
/* 星空模式独立按钮(旧版本,保留备用) */
|
||
.galaxy-mode-btn {
|
||
background: transparent;
|
||
border: none;
|
||
padding: 8px 12px;
|
||
cursor: pointer;
|
||
display: none;
|
||
flex-direction: column;
|
||
align-items: center;
|
||
gap: 4px;
|
||
transition: all 0.3s ease;
|
||
border-radius: 8px;
|
||
position: relative;
|
||
margin-top: 8px;
|
||
}
|
||
|
||
.galaxy-mode-btn:hover {
|
||
background: rgba(255, 215, 0, 0.1);
|
||
transform: scale(1.1);
|
||
}
|
||
|
||
.galaxy-mode-btn svg {
|
||
transition: transform 0.3s ease;
|
||
}
|
||
|
||
.galaxy-mode-btn:hover svg {
|
||
transform: rotate(15deg);
|
||
}
|
||
|
||
/* 星空预览容器 */
|
||
.galaxy-container {
|
||
display: none;
|
||
position: fixed;
|
||
top: 0;
|
||
left: 0;
|
||
width: 100%;
|
||
height: 100%;
|
||
background: linear-gradient(135deg, #0a0a2e 0%, #16162e 50%, #0d0d3d 100%);
|
||
z-index: 10000;
|
||
flex-direction: column;
|
||
}
|
||
|
||
.galaxy-container.active {
|
||
display: flex;
|
||
animation: galaxyFadeIn 0.5s ease;
|
||
}
|
||
|
||
@keyframes galaxyFadeIn {
|
||
from {
|
||
opacity: 0;
|
||
}
|
||
to {
|
||
opacity: 1;
|
||
}
|
||
}
|
||
|
||
/* 星空头部 */
|
||
.galaxy-header {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
padding: 16px 24px;
|
||
background: rgba(0, 0, 0, 0.4);
|
||
backdrop-filter: blur(10px);
|
||
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
|
||
z-index: 10001;
|
||
}
|
||
|
||
.galaxy-header h2 {
|
||
color: #FFD700;
|
||
font-size: 20px;
|
||
margin: 0;
|
||
text-shadow: 0 0 10px rgba(255, 215, 0, 0.5);
|
||
}
|
||
|
||
.galaxy-controls {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 16px;
|
||
}
|
||
|
||
.galaxy-tip {
|
||
color: rgba(255, 255, 255, 0.6);
|
||
font-size: 12px;
|
||
}
|
||
|
||
.galaxy-close-btn {
|
||
background: rgba(255, 255, 255, 0.1);
|
||
border: 1px solid rgba(255, 255, 255, 0.2);
|
||
color: #fff;
|
||
font-size: 24px;
|
||
width: 36px;
|
||
height: 36px;
|
||
cursor: pointer;
|
||
border-radius: 50%;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
transition: all 0.3s ease;
|
||
}
|
||
|
||
.galaxy-close-btn:hover {
|
||
background: rgba(255, 0, 0, 0.5);
|
||
border-color: rgba(255, 0, 0, 0.6);
|
||
transform: rotate(90deg);
|
||
}
|
||
|
||
/* 星空画布 */
|
||
#galaxy-canvas {
|
||
flex: 1;
|
||
cursor: grab;
|
||
}
|
||
|
||
#galaxy-canvas:active {
|
||
cursor: grabbing;
|
||
}
|
||
|
||
/* 星星点击提示 */
|
||
.star-tooltip {
|
||
position: fixed;
|
||
background: rgba(0, 0, 0, 0.88);
|
||
border: 1px solid rgba(255, 255, 255, 0.2);
|
||
border-radius: 10px;
|
||
padding: 14px 18px;
|
||
pointer-events: none;
|
||
z-index: 10002;
|
||
opacity: 0;
|
||
transition: opacity 0.2s ease, transform 0.2s ease;
|
||
max-width: 320px;
|
||
backdrop-filter: blur(12px);
|
||
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
|
||
}
|
||
|
||
.star-tooltip.visible {
|
||
opacity: 1;
|
||
transform: translateY(0);
|
||
}
|
||
|
||
.star-tooltip img {
|
||
width: 100px;
|
||
height: 100px;
|
||
object-fit: cover;
|
||
border-radius: 8px;
|
||
border: 2px solid rgba(255, 255, 255, 0.3);
|
||
}
|
||
|
||
.star-tooltip p {
|
||
color: rgba(255, 255, 255, 0.9);
|
||
margin: 10px 0 0;
|
||
font-size: 12px;
|
||
text-align: center;
|
||
letter-spacing: 0.5px;
|
||
}
|
||
|
||
/* 星星放大弹窗 */
|
||
.star-lightbox {
|
||
display: none;
|
||
position: fixed;
|
||
top: 0;
|
||
left: 0;
|
||
width: 100%;
|
||
height: 100%;
|
||
background: rgba(0, 0, 0, 0.92);
|
||
z-index: 10003;
|
||
align-items: center;
|
||
justify-content: center;
|
||
flex-direction: column;
|
||
backdrop-filter: blur(10px);
|
||
}
|
||
|
||
.star-lightbox.active {
|
||
display: flex;
|
||
animation: lightboxFadeIn 0.25s ease;
|
||
}
|
||
|
||
@keyframes lightboxFadeIn {
|
||
from {
|
||
opacity: 0;
|
||
}
|
||
to {
|
||
opacity: 1;
|
||
}
|
||
}
|
||
|
||
.star-lightbox-container {
|
||
position: relative;
|
||
max-width: 90vw;
|
||
max-height: 85vh;
|
||
display: flex;
|
||
flex-direction: column;
|
||
align-items: center;
|
||
}
|
||
|
||
.star-lightbox img {
|
||
max-width: 90vw;
|
||
max-height: 80vh;
|
||
object-fit: contain;
|
||
border-radius: 12px;
|
||
box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(255, 255, 255, 0.1);
|
||
animation: imageZoomIn 0.25s ease;
|
||
}
|
||
|
||
@keyframes imageZoomIn {
|
||
from {
|
||
transform: scale(0.9);
|
||
opacity: 0;
|
||
}
|
||
to {
|
||
transform: scale(1);
|
||
opacity: 1;
|
||
}
|
||
}
|
||
|
||
.star-lightbox-close {
|
||
position: absolute;
|
||
top: -50px;
|
||
right: -10px;
|
||
background: rgba(255, 255, 255, 0.15);
|
||
border: 1px solid rgba(255, 255, 255, 0.2);
|
||
color: #fff;
|
||
font-size: 24px;
|
||
width: 40px;
|
||
height: 40px;
|
||
cursor: pointer;
|
||
border-radius: 50%;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
transition: all 0.3s ease;
|
||
backdrop-filter: blur(10px);
|
||
}
|
||
|
||
.star-lightbox-close:hover {
|
||
background: rgba(255, 255, 255, 0.25);
|
||
transform: rotate(90deg);
|
||
border-color: rgba(255, 255, 255, 0.4);
|
||
}
|
||
|
||
.star-lightbox-info {
|
||
color: rgba(255, 255, 255, 0.9);
|
||
font-size: 14px;
|
||
margin-top: 16px;
|
||
padding: 8px 16px;
|
||
background: rgba(255, 255, 255, 0.1);
|
||
border-radius: 20px;
|
||
backdrop-filter: blur(10px);
|
||
letter-spacing: 0.5px;
|
||
}
|
||
|
||
.star-lightbox-nav {
|
||
position: absolute;
|
||
top: 50%;
|
||
transform: translateY(-50%);
|
||
background: rgba(255, 255, 255, 0.15);
|
||
border: 1px solid rgba(255, 255, 255, 0.2);
|
||
color: #fff;
|
||
font-size: 24px;
|
||
width: 50px;
|
||
height: 50px;
|
||
cursor: pointer;
|
||
border-radius: 50%;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
transition: all 0.3s ease;
|
||
backdrop-filter: blur(10px);
|
||
}
|
||
|
||
.star-lightbox-nav:hover {
|
||
background: rgba(255, 255, 255, 0.25);
|
||
border-color: rgba(255, 255, 255, 0.4);
|
||
}
|
||
|
||
.star-lightbox-nav.prev {
|
||
left: -70px;
|
||
}
|
||
|
||
.star-lightbox-nav.next {
|
||
right: -70px;
|
||
}
|
||
|
||
.star-lightbox-counter {
|
||
color: rgba(255, 255, 255, 0.6);
|
||
font-size: 12px;
|
||
margin-top: 10px;
|
||
}
|
||
|
||
/* 加载动画 */
|
||
.galaxy-loading {
|
||
position: absolute;
|
||
top: 50%;
|
||
left: 50%;
|
||
transform: translate(-50%, -50%);
|
||
color: #FFD700;
|
||
font-size: 18px;
|
||
text-shadow: 0 0 20px rgba(255, 215, 0, 0.5);
|
||
animation: pulse 1.5s infinite;
|
||
}
|
||
|
||
@keyframes pulse {
|
||
0%, 100% {
|
||
opacity: 0.6;
|
||
}
|
||
50% {
|
||
opacity: 1;
|
||
}
|
||
}
|
||
|
||
/* 响应式设计 */
|
||
@media (max-width: 768px) {
|
||
.galaxy-header {
|
||
padding: 12px 16px;
|
||
}
|
||
|
||
.galaxy-header h2 {
|
||
font-size: 16px;
|
||
}
|
||
|
||
.galaxy-tip {
|
||
display: none;
|
||
}
|
||
|
||
.star-lightbox img {
|
||
max-width: 95%;
|
||
}
|
||
}
|