mirror of
https://github.com/StepanovPlaton/AboutMe.git
synced 2026-04-04 12:50:49 +04:00
Initial commit
This commit is contained in:
246
src/styles/albums.css
Normal file
246
src/styles/albums.css
Normal file
@@ -0,0 +1,246 @@
|
||||
/*
|
||||
* 相册模块样式
|
||||
*/
|
||||
|
||||
|
||||
/* 相册卡片动画 */
|
||||
.album-card {
|
||||
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
}
|
||||
|
||||
.album-card:hover {
|
||||
translate: 0 -4px;
|
||||
}
|
||||
|
||||
|
||||
/* 照片网格布局 */
|
||||
.photo-gallery {
|
||||
animation: fadeInUp 0.6s ease-out;
|
||||
}
|
||||
|
||||
.photo-item {
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
|
||||
/* 瀑布流布局优化 */
|
||||
.masonry-layout .photo-item {
|
||||
page-break-inside: avoid;
|
||||
break-inside: avoid;
|
||||
}
|
||||
|
||||
|
||||
/* 照片悬停效果 */
|
||||
.photo-container {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
border-radius: 0.5rem;
|
||||
}
|
||||
|
||||
.photo-image {
|
||||
transition: transform 0.3s ease;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: cover;
|
||||
}
|
||||
|
||||
.photo-overlay {
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
background: linear-gradient(to top, rgba(0, 0, 0, 0.7), transparent);
|
||||
opacity: 0;
|
||||
transition: opacity 0.3s ease;
|
||||
}
|
||||
|
||||
.photo-item:hover .photo-overlay {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.photo-info {
|
||||
translate: 0 100%;
|
||||
transition: transform 0.3s ease;
|
||||
}
|
||||
|
||||
.photo-item:hover .photo-info {
|
||||
translate: 0 0;
|
||||
}
|
||||
|
||||
|
||||
/* 灯箱样式 */
|
||||
.lightbox {
|
||||
backdrop-filter: blur(8px);
|
||||
z-index: 9999;
|
||||
}
|
||||
|
||||
.lightbox-content {
|
||||
max-width: 95vw;
|
||||
max-height: 95vh;
|
||||
}
|
||||
|
||||
.lightbox-image-container {
|
||||
min-height: 60vh;
|
||||
}
|
||||
|
||||
#lightbox-image {
|
||||
max-width: 100%;
|
||||
max-height: 80vh;
|
||||
object-fit: contain;
|
||||
border-radius: 0.5rem;
|
||||
}
|
||||
|
||||
|
||||
/* 灯箱按钮 */
|
||||
.lightbox button {
|
||||
backdrop-filter: blur(4px);
|
||||
transition: all 0.2s ease;
|
||||
}
|
||||
|
||||
.lightbox button:hover {
|
||||
background-color: rgba(0, 0, 0, 0.7);
|
||||
scale: 1.05;
|
||||
}
|
||||
|
||||
|
||||
/* 灯箱信息面板 */
|
||||
#lightbox-info {
|
||||
backdrop-filter: blur(8px);
|
||||
border-radius: 0.5rem;
|
||||
max-height: 30vh;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
|
||||
/* 响应式设计 */
|
||||
@media (max-width: 768px) {
|
||||
.albums-grid {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
|
||||
.masonry-layout {
|
||||
columns: 1;
|
||||
}
|
||||
|
||||
.photo-gallery[data-columns="3"],
|
||||
.photo-gallery[data-columns="4"] {
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
}
|
||||
|
||||
.lightbox-content {
|
||||
padding: 1rem;
|
||||
}
|
||||
|
||||
#lightbox-prev,
|
||||
#lightbox-next {
|
||||
width: 2.5rem;
|
||||
height: 2.5rem;
|
||||
}
|
||||
|
||||
#lightbox-info {
|
||||
position: static;
|
||||
margin-top: 1rem;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 512px) {
|
||||
.photo-gallery {
|
||||
grid-template-columns: 1fr !important;
|
||||
}
|
||||
|
||||
.masonry-layout {
|
||||
columns: 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* 加载动画 */
|
||||
@keyframes fadeInUp {
|
||||
from {
|
||||
opacity: 0;
|
||||
translate: 0 30px;
|
||||
}
|
||||
to {
|
||||
opacity: 1;
|
||||
translate: 0 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* 图片懒加载占位符 */
|
||||
.photo-image[loading="lazy"] {
|
||||
background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
|
||||
background-size: 200% 100%;
|
||||
animation: loading 1.5s infinite;
|
||||
}
|
||||
|
||||
@keyframes loading {
|
||||
0% {
|
||||
background-position: 200% 0;
|
||||
}
|
||||
100% {
|
||||
background-position: -200% 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* 深色模式适配 */
|
||||
@media (prefers-color-scheme: dark) {
|
||||
.photo-image[loading="lazy"] {
|
||||
background: linear-gradient(90deg, #2a2a2a 25%, #1a1a1a 50%, #2a2a2a 75%);
|
||||
background-size: 200% 100%;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* 标签筛选动画 */
|
||||
.album-filter-tag {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.album-filter-tag::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: -100%;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
|
||||
transition: left 0.5s;
|
||||
}
|
||||
|
||||
.album-filter-tag:hover::before {
|
||||
left: 100%;
|
||||
}
|
||||
|
||||
|
||||
/* 相册卡片内容对齐 */
|
||||
.album-card .p-4 {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.album-card h3 {
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
|
||||
/* 打印样式 */
|
||||
@media print {
|
||||
.lightbox,
|
||||
.album-filter-tag,
|
||||
button {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.photo-gallery {
|
||||
display: block !important;
|
||||
columns: 2;
|
||||
column-gap: 1rem;
|
||||
}
|
||||
|
||||
.photo-item {
|
||||
break-inside: avoid;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user