笔记本
All checks were successful
Gitea Actions Official-website / deploy-dev (push) Successful in 2s

This commit is contained in:
2025-12-10 15:34:03 +08:00
parent db1ad0f88a
commit ba79dc6178
77 changed files with 3379 additions and 14 deletions

View File

@@ -0,0 +1,110 @@
/* 图片容器100vw宽最小宽度1440px按图片原始比例2560:1857定高 */
.zoom-container {
width: 100%;
min-width: 1440px;
overflow: hidden;
position: relative;
/* 固定比例:高度 = 宽度 * 1857/2560确保图片不裁切 */
aspect-ratio: 2560 / 1857;
height: auto; /* 替代原max计算用aspect-ratio保证比例 */
}
/* 图片包裹层:与容器同尺寸,定位参考系,承接缩放变换 */
.img-wrapper {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
overflow: hidden;
}
/* 图片:按原始比例填充包裹层,不裁切,初始放大+过渡动画 */
.bg-img {
width: 100%;
height: 100%;
object-fit: contain; /* 改为contain确保图片完整显示不裁切 */
display: block;
transform: scale(1.5);
transition: transform 1.8s ease;
transform-origin: center center;
}
/* 图片缩小后的状态 */
.bg-img.zoom-out {
transform: scale(1);
}
/* 标注样式:关键修正 - 基于容器绝对定位,百分比参考图片原始比例 */
.annotation {
position: absolute;
color: #48494D;
font-size: calc(12px + 0.3vw);
opacity: 0;
transform: translateY(calc(10px + 0.5vw));
transition: opacity 0.8s ease, transform 0.8s ease;
pointer-events: none;
z-index: 10;
white-space: nowrap;
/* 关键:标注的定位参考系是容器(与图片同比例),而非缩放后的图片 */
top: 0;
left: 0;
/* 重置默认值依赖内联style的百分比定位 */
}
/* 标注显示状态 */
.annotation.anno-show {
opacity: 1;
transform: translateY(0);
}
.annotation span {
position: relative;
display: inline-block;
/* 确保文字居中对齐 */
text-align: center;
}
/* 标注线条样式:基于文字定位,适配缩放 */
.annotation span::before {
content: '';
position: absolute;
left: 50%;
transform: translateX(-50%);
width: 1px;
height: 0;
bottom: calc(100% + 6px);
background-color: #48494D;
transition: height 0.8s ease;
transform-origin: bottom center;
}
/* 标注显示时,设置线条最终高度 */
.annotation.anno-show span::before {
height:clamp(50px,3vw,0.6rem);
/* 最终高度vw单位 */
}
/* 响应式适配1280px以下固定尺寸 */
@media (max-width: 1280px) {
.zoom-container {
min-width: 1280px; /* 最小宽度适配 */
}
.annotation span::before {
bottom: calc(100% + 6px);
}
.annotation.anno-show span::before {
height: 38px; /* 固定高度 */
}
.annotation {
font-size: 14px; /* 固定字体大小,避免过小 */
}
}
/* 标注延迟类 */
.anno-delay-1 {
transition-delay: 0.8s;
}
.anno-delay-1 span::before {
transition-delay: 0.8s;
}