feat(wiki): 新增 GHC06 任务页与图库发布体系,级联更新既有页面
Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -18,15 +18,157 @@
|
||||
.wiki-article .gallery-item .thumbcaption { padding: 4px 2px 2px; }
|
||||
@media (max-width: 820px) { .wiki-article { padding: 18px 16px 36px; } .wiki-article .thumb { float: none; width: 100%; margin: 0.75em 0 1em; } .wiki-article .gallery-grid { grid-template-columns: 1fr; } }
|
||||
|
||||
.wiki-article img[data-wiki-asset] { cursor: zoom-in; }
|
||||
.wiki-image-lightbox { position: fixed; inset: 0; display: flex; align-items: center; justify-content: center; padding: 24px; background: rgba(32,33,34,0.84); z-index: 10000; box-sizing: border-box; }
|
||||
/* mission-gallery-enhancements:start */
|
||||
.wiki-article .gallery-grid {
|
||||
grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr));
|
||||
align-items: stretch;
|
||||
}
|
||||
.wiki-article .gallery-item {
|
||||
display: grid;
|
||||
grid-template-rows: auto 1fr;
|
||||
overflow: hidden;
|
||||
content-visibility: auto;
|
||||
contain-intrinsic-size: 340px 300px;
|
||||
}
|
||||
.wiki-article .gallery-item img[data-wiki-asset] {
|
||||
width: 100%;
|
||||
aspect-ratio: 16 / 9;
|
||||
object-fit: contain;
|
||||
background: #202122;
|
||||
cursor: zoom-in;
|
||||
}
|
||||
.wiki-article .gallery-item .thumbcaption {
|
||||
padding: 8px 7px 7px;
|
||||
}
|
||||
.wiki-article .gallery-notice {
|
||||
margin: 1em 0 1.25em;
|
||||
padding: 10px 12px;
|
||||
border-left: 4px solid #36c;
|
||||
background: #f1f4fd;
|
||||
color: #202122;
|
||||
}
|
||||
.wiki-article .image-placeholder {
|
||||
position: relative;
|
||||
border: 1px dashed #72777d;
|
||||
background: linear-gradient(135deg, #f8f9fa, #eaecf0);
|
||||
color: #54595d;
|
||||
}
|
||||
.wiki-article.gallery-planning .gallery-grid {
|
||||
grid-template-columns: repeat(auto-fill, minmax(min(100%, 360px), 1fr));
|
||||
gap: 12px;
|
||||
}
|
||||
.wiki-article.gallery-planning .gallery-item {
|
||||
display: block;
|
||||
content-visibility: visible;
|
||||
contain-intrinsic-size: none;
|
||||
border-color: #a2a9b1;
|
||||
background: #fff;
|
||||
box-shadow: 0 1px 2px rgba(32, 33, 34, 0.08);
|
||||
}
|
||||
.wiki-article.gallery-planning .image-placeholder {
|
||||
min-height: 0 !important;
|
||||
display: block;
|
||||
padding: 14px 14px 12px;
|
||||
border: 0;
|
||||
border-left: 4px solid #72777d;
|
||||
background: #f8f9fa;
|
||||
color: #202122;
|
||||
text-align: left;
|
||||
font-size: 13px;
|
||||
font-weight: 600;
|
||||
line-height: 1.65;
|
||||
}
|
||||
.wiki-article.gallery-planning .gallery-item .thumbcaption {
|
||||
padding: 10px 14px 12px;
|
||||
border-top: 1px solid #eaecf0;
|
||||
color: #54595d;
|
||||
}
|
||||
.wiki-article.gallery-planning > .image-placeholder {
|
||||
min-height: 0;
|
||||
padding: 22px 18px;
|
||||
border-left: 4px solid #72777d;
|
||||
}
|
||||
.wiki-image-lightbox {
|
||||
position: fixed;
|
||||
inset: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 24px;
|
||||
background: rgba(32, 33, 34, 0.88);
|
||||
z-index: 10000;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.wiki-image-lightbox[hidden] { display: none; }
|
||||
.wiki-image-lightbox-panel { position: relative; width: min(1120px, 96vw); max-height: 92vh; overflow: auto; margin: 0; padding: 10px; border: 1px solid #a2a9b1; background: #fff; box-shadow: 0 12px 38px rgba(0,0,0,0.35); box-sizing: border-box; }
|
||||
.wiki-image-lightbox-panel img { display: block; width: 100%; height: auto; max-height: 82vh; object-fit: contain; background: #000; }
|
||||
.wiki-image-lightbox-close { position: sticky; top: 0; float: right; width: 30px; height: 30px; margin: -2px -2px 8px 10px; border: 1px solid #a2a9b1; background: #eaecf0; color: #202122; font-weight: bold; line-height: 26px; cursor: pointer; }
|
||||
.wiki-image-lightbox-close:hover, .wiki-image-lightbox-close:focus { background: #fff; }
|
||||
.wiki-image-lightbox-panel {
|
||||
position: relative;
|
||||
display: grid;
|
||||
grid-template-columns: 44px minmax(0, 1fr) 44px;
|
||||
grid-template-areas: "close close close" "prev image next" "counter caption caption";
|
||||
gap: 8px;
|
||||
width: min(1320px, 96vw);
|
||||
max-height: 94vh;
|
||||
overflow: auto;
|
||||
margin: 0;
|
||||
padding: 10px;
|
||||
border: 1px solid #a2a9b1;
|
||||
background: #fff;
|
||||
box-shadow: 0 12px 38px rgba(0, 0, 0, 0.35);
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.wiki-image-lightbox-panel > img {
|
||||
grid-area: image;
|
||||
width: 100%;
|
||||
height: min(78vh, 900px);
|
||||
object-fit: contain;
|
||||
background: #000;
|
||||
}
|
||||
.wiki-image-lightbox-close {
|
||||
grid-area: close;
|
||||
justify-self: end;
|
||||
position: static;
|
||||
float: none;
|
||||
width: 34px;
|
||||
height: 34px;
|
||||
margin: 0;
|
||||
border: 1px solid #a2a9b1;
|
||||
border-radius: 3px;
|
||||
background: #eaecf0;
|
||||
color: #202122;
|
||||
font-size: 22px;
|
||||
line-height: 30px;
|
||||
cursor: pointer;
|
||||
}
|
||||
.wiki-image-lightbox-close:hover,
|
||||
.wiki-image-lightbox-close:focus { background: #fff; }
|
||||
.wiki-image-lightbox-prev { grid-area: prev; }
|
||||
.wiki-image-lightbox-next { grid-area: next; }
|
||||
.wiki-image-lightbox-nav {
|
||||
align-self: center;
|
||||
width: 40px;
|
||||
height: 56px;
|
||||
border: 1px solid #a2a9b1;
|
||||
border-radius: 3px;
|
||||
background: #eaecf0;
|
||||
color: #202122;
|
||||
font-size: 26px;
|
||||
cursor: pointer;
|
||||
}
|
||||
.wiki-image-lightbox-nav:hover,
|
||||
.wiki-image-lightbox-nav:focus { background: #fff; }
|
||||
.wiki-image-lightbox-counter { grid-area: counter; color: #54595d; white-space: nowrap; }
|
||||
.wiki-image-lightbox-panel .thumbcaption { grid-area: caption; padding: 0 4px 3px; }
|
||||
body.wiki-image-lightbox-open { overflow: hidden; }
|
||||
@media (max-width: 820px) { .wiki-image-lightbox { padding: 12px; } .wiki-image-lightbox-panel { width: 98vw; max-height: 94vh; } }
|
||||
@media (max-width: 820px) {
|
||||
.wiki-article .gallery-grid { grid-template-columns: 1fr; }
|
||||
.wiki-image-lightbox-panel {
|
||||
grid-template-columns: 36px minmax(0, 1fr) 36px;
|
||||
width: 98vw;
|
||||
}
|
||||
.wiki-image-lightbox-panel > img { height: 70vh; }
|
||||
.wiki-image-lightbox-nav { width: 34px; height: 48px; }
|
||||
}
|
||||
/* mission-gallery-enhancements:end */
|
||||
</style>
|
||||
|
||||
<article class="mw-parser-output wiki-article">
|
||||
@@ -37,145 +179,41 @@ body.wiki-image-lightbox-open { overflow: hidden; }
|
||||
|
||||
<h2>发射与上升</h2>
|
||||
<div class="gallery-grid">
|
||||
<div class="gallery-item"><img src="/guanghan-ghc-02/launch.png" alt="CZ-16A发射" data-wiki-asset="/guanghan-ghc-02/launch.png"><div class="thumbcaption">CZ-16A 搭载嫦娥-吴刚组合体从文昌发射场升空。全箭总高 125.4 m,是迄今为止发射的最大规模载人登月组合体。</div></div>
|
||||
<div class="gallery-item"><img src="/guanghan-ghc-02/launch2_staging.png" alt="一二级分离" data-wiki-asset="/guanghan-ghc-02/launch2_staging.png"><div class="thumbcaption">一二级分离,二级 YF-215X Vac 发动机点火。右上角可见逃逸塔正在分离——二级推力稳定后触发分离发动机。</div></div>
|
||||
<div class="gallery-item"><img src="/guanghan-ghc-02/launch.png" alt="CZ-16A发射" data-wiki-asset="/guanghan-ghc-02/launch.png" loading="lazy" decoding="async" fetchpriority="low"><div class="thumbcaption">长征十六号甲型运载火箭搭载嫦娥-吴刚组合体从文昌发射场升空。全箭总高 125.4 m,是迄今为止发射的最大规模载人登月组合体。</div></div>
|
||||
<div class="gallery-item"><img src="/guanghan-ghc-02/launch2_staging.png" alt="一二级分离" data-wiki-asset="/guanghan-ghc-02/launch2_staging.png" loading="lazy" decoding="async" fetchpriority="low"><div class="thumbcaption">一二级分离,二级 YF-215X Vac 发动机点火。右上角可见逃逸塔正在分离——二级推力稳定后触发分离发动机。</div></div>
|
||||
</div>
|
||||
|
||||
<h2>地月转移与在轨操作</h2>
|
||||
<div class="gallery-grid">
|
||||
<div class="gallery-item"><img src="/guanghan-ghc-02/tli.png" alt="TLI点火" data-wiki-asset="/guanghan-ghc-02/tli.png"><div class="thumbcaption">二级执行 TLI 点火,将组合体送入地月转移轨道。此时嫦娥飞船和吴刚着陆器仍被包裹在展开式整流罩内。</div></div>
|
||||
<div class="gallery-item"><img src="/guanghan-ghc-02/chang_e_sep.png" alt="嫦娥飞船分离" data-wiki-asset="/guanghan-ghc-02/chang_e_sep.png"><div class="thumbcaption">TLI 完成后整流罩展开,嫦娥飞船主发动机点火从整流罩中分离。背景中可以看到地球逐渐远去。</div></div>
|
||||
<div class="gallery-item"><img src="/guanghan-ghc-02/chang_e_dock_prep.png" alt="嫦娥准备对接吴刚" data-wiki-asset="/guanghan-ghc-02/chang_e_dock_prep.png"><div class="thumbcaption">嫦娥飞船调头 180°,前向对接口朝向仍固定在整流罩桁架上的吴刚着陆器,准备对接。</div></div>
|
||||
<div class="gallery-item"><img src="/guanghan-ghc-02/chang_e_extract_wugang.png" alt="取出吴刚着陆器" data-wiki-asset="/guanghan-ghc-02/chang_e_extract_wugang.png"><div class="thumbcaption">嫦娥飞船与吴刚着陆器顶部对接完成,从整流罩桁架上"拖出"着陆器。组合体将继续飞往月球。</div></div>
|
||||
<div class="gallery-item"><img src="/guanghan-ghc-02/tli.png" alt="TLI点火" data-wiki-asset="/guanghan-ghc-02/tli.png" loading="lazy" decoding="async" fetchpriority="low"><div class="thumbcaption">二级执行 TLI 点火,将组合体送入地月转移轨道。此时嫦娥飞船和吴刚着陆器仍被包裹在展开式整流罩内。</div></div>
|
||||
<div class="gallery-item"><img src="/guanghan-ghc-02/chang_e_sep.png" alt="嫦娥飞船分离" data-wiki-asset="/guanghan-ghc-02/chang_e_sep.png" loading="lazy" decoding="async" fetchpriority="low"><div class="thumbcaption">TLI 完成后整流罩展开,嫦娥飞船主发动机点火从整流罩中分离。背景中可以看到地球逐渐远去。</div></div>
|
||||
<div class="gallery-item"><img src="/guanghan-ghc-02/chang_e_dock_prep.png" alt="嫦娥准备对接吴刚" data-wiki-asset="/guanghan-ghc-02/chang_e_dock_prep.png" loading="lazy" decoding="async" fetchpriority="low"><div class="thumbcaption">嫦娥飞船调头 180°,前向对接口朝向仍固定在整流罩桁架上的吴刚着陆器,准备对接。</div></div>
|
||||
<div class="gallery-item"><img src="/guanghan-ghc-02/chang_e_extract_wugang.png" alt="取出吴刚着陆器" data-wiki-asset="/guanghan-ghc-02/chang_e_extract_wugang.png" loading="lazy" decoding="async" fetchpriority="low"><div class="thumbcaption">嫦娥飞船与吴刚着陆器顶部对接完成,从整流罩桁架上"拖出"着陆器。组合体将继续飞往月球。</div></div>
|
||||
</div>
|
||||
|
||||
<h2>月面着陆</h2>
|
||||
<div class="gallery-grid">
|
||||
<div class="gallery-item"><img src="/guanghan-ghc-02/wugang_sep.png" alt="吴刚分离" data-wiki-asset="/guanghan-ghc-02/wugang_sep.png"><div class="thumbcaption">进入近月轨道后,吴刚着陆器与嫦娥飞船分离,开始独立执行动力下降。嫦娥飞船留轨待命。</div></div>
|
||||
<div class="gallery-item"><img src="/guanghan-ghc-02/wugang_descent_burn.png" alt="吴刚主减速段点火" data-wiki-asset="/guanghan-ghc-02/wugang_descent_burn.png"><div class="thumbcaption">吴刚着陆器主减速段——2 台 Hecate 发动机全推力工作,将速度从轨道速度降至亚音速。下方可见月球东方海地貌。</div></div>
|
||||
<div class="gallery-item"><img src="/guanghan-ghc-02/wugang_landing_burn.png" alt="吴刚着陆点火中" data-wiki-asset="/guanghan-ghc-02/wugang_landing_burn.png"><div class="thumbcaption">接近月面时着陆腿展开,Hecate 发动机节流减速至悬停。月面扬起的尘埃在发动机羽流下形成辐射状扩散。</div></div>
|
||||
<div class="gallery-item"><img src="/guanghan-ghc-02/wugang_landed.png" alt="吴刚着陆" data-wiki-asset="/guanghan-ghc-02/wugang_landed.png"><div class="thumbcaption">吴刚一号成功着陆东方海。着陆腿足垫与月面充分接触,着陆器稳定。远处地平线上可见月球澄海区域的山脉轮廓。</div></div>
|
||||
<div class="gallery-item"><img src="/guanghan-ghc-02/wugang_sep.png" alt="吴刚分离" data-wiki-asset="/guanghan-ghc-02/wugang_sep.png" loading="lazy" decoding="async" fetchpriority="low"><div class="thumbcaption">进入近月轨道后,吴刚着陆器与嫦娥飞船分离,开始独立执行动力下降。嫦娥飞船留轨待命。</div></div>
|
||||
<div class="gallery-item"><img src="/guanghan-ghc-02/wugang_descent_burn.png" alt="吴刚主减速段点火" data-wiki-asset="/guanghan-ghc-02/wugang_descent_burn.png" loading="lazy" decoding="async" fetchpriority="low"><div class="thumbcaption">吴刚着陆器主减速段——2 台 Hecate 发动机全推力工作,将速度从轨道速度降至亚音速。下方可见月球东方海地貌。</div></div>
|
||||
<div class="gallery-item"><img src="/guanghan-ghc-02/wugang_landing_burn.png" alt="吴刚着陆点火中" data-wiki-asset="/guanghan-ghc-02/wugang_landing_burn.png" loading="lazy" decoding="async" fetchpriority="low"><div class="thumbcaption">接近月面时着陆腿展开,Hecate 发动机节流减速至悬停。月面扬起的尘埃在发动机羽流下形成辐射状扩散。</div></div>
|
||||
<div class="gallery-item"><img src="/guanghan-ghc-02/wugang_landed.png" alt="吴刚着陆" data-wiki-asset="/guanghan-ghc-02/wugang_landed.png" loading="lazy" decoding="async" fetchpriority="low"><div class="thumbcaption">吴刚一号成功着陆东方海。着陆腿足垫与月面充分接触,着陆器稳定。远处地平线上可见月球澄海区域的山脉轮廓。</div></div>
|
||||
</div>
|
||||
|
||||
<h2>月球轨道交会与返回</h2>
|
||||
<div class="gallery-grid">
|
||||
<div class="gallery-item"><img src="/guanghan-ghc-02/wugang_dock_llo.png" alt="吴刚准备对接" data-wiki-asset="/guanghan-ghc-02/wugang_dock_llo.png"><div class="thumbcaption">11 天后,吴刚从月面起飞。乘组已在月面完成全部 7 次 EVA,吴刚正接近嫦娥飞船准备对接。背景为月面地平线。</div></div>
|
||||
<div class="gallery-item"><img src="/guanghan-ghc-02/chang_e_return_burn.png" alt="嫦娥返回点火" data-wiki-asset="/guanghan-ghc-02/chang_e_return_burn.png"><div class="thumbcaption">乘组转移至返回舱后,吴刚与嫦娥飞船分离。嫦娥飞船 Hecate 发动机点火执行月球轨道逃逸,开始地月返回。</div></div>
|
||||
<div class="gallery-item"><img src="/guanghan-ghc-02/sm_sep.png" alt="服务舱分离" data-wiki-asset="/guanghan-ghc-02/sm_sep.png"><div class="thumbcaption">地月返回途中,服务舱与返回舱分离。返回舱以热盾朝前姿态准备进入大气层。地球在前方可见。</div></div>
|
||||
<div class="gallery-item"><img src="/guanghan-ghc-02/wugang_dock_llo.png" alt="吴刚准备对接" data-wiki-asset="/guanghan-ghc-02/wugang_dock_llo.png" loading="lazy" decoding="async" fetchpriority="low"><div class="thumbcaption">11 天后,吴刚从月面起飞。乘组已在月面完成全部 7 次 EVA,吴刚正接近嫦娥飞船准备对接。背景为月面地平线。</div></div>
|
||||
<div class="gallery-item"><img src="/guanghan-ghc-02/chang_e_return_burn.png" alt="嫦娥返回点火" data-wiki-asset="/guanghan-ghc-02/chang_e_return_burn.png" loading="lazy" decoding="async" fetchpriority="low"><div class="thumbcaption">乘组转移至返回舱后,吴刚与嫦娥飞船分离。嫦娥飞船 Hecate 发动机点火执行月球轨道逃逸,开始地月返回。</div></div>
|
||||
<div class="gallery-item"><img src="/guanghan-ghc-02/sm_sep.png" alt="服务舱分离" data-wiki-asset="/guanghan-ghc-02/sm_sep.png" loading="lazy" decoding="async" fetchpriority="low"><div class="thumbcaption">地月返回途中,服务舱与返回舱分离。返回舱以热盾朝前姿态准备进入大气层。地球在前方可见。</div></div>
|
||||
</div>
|
||||
|
||||
<h2>再入与着陆</h2>
|
||||
<div class="gallery-grid">
|
||||
<div class="gallery-item"><img src="/guanghan-ghc-02/reentry.png" alt="返回舱再入" data-wiki-asset="/guanghan-ghc-02/reentry.png"><div class="thumbcaption">返回舱以约 11 km/s 的速度进入大气层。烧蚀热盾承受数千度高温,周围大气被电离形成等离子体鞘套。</div></div>
|
||||
<div class="gallery-item"><img src="/guanghan-ghc-02/reentry2.png" alt="返回舱再入2" data-wiki-asset="/guanghan-ghc-02/reentry2.png"><div class="thumbcaption">再入过程中的另一视角——等离子体尾迹清晰可见。400 公斤烧蚀材料在此阶段逐步消耗,保护返回舱结构。</div></div>
|
||||
<div class="gallery-item"><img src="/guanghan-ghc-02/reentry_wenchang.png" alt="重返文昌上空" data-wiki-asset="/guanghan-ghc-02/reentry_wenchang.png"><div class="thumbcaption">速度降至亚音速后,返回舱飞越文昌回收场上空。云层下海南岛海岸线依稀可辨。</div></div>
|
||||
<div class="gallery-item"><img src="/guanghan-ghc-02/drogue_chute.png" alt="开减速伞" data-wiki-asset="/guanghan-ghc-02/drogue_chute.png"><div class="thumbcaption">引导伞先行展开,稳定返回舱姿态,为后续主伞展开提供平稳的初始条件。</div></div>
|
||||
<div class="gallery-item"><img src="/guanghan-ghc-02/main_chute.png" alt="开主伞" data-wiki-asset="/guanghan-ghc-02/main_chute.png"><div class="thumbcaption">70 m 直径主伞完全展开,返回舱减速至着陆速度。主伞织物的每条加强筋在阳光照射下清晰可见。着陆点距预定坐标仅 149 m。</div></div>
|
||||
<div class="gallery-item"><img src="/guanghan-ghc-02/reentry.png" alt="返回舱再入" data-wiki-asset="/guanghan-ghc-02/reentry.png" loading="lazy" decoding="async" fetchpriority="low"><div class="thumbcaption">返回舱以约 11 km/s 的速度进入大气层。烧蚀热盾承受数千度高温,周围大气被电离形成等离子体鞘套。</div></div>
|
||||
<div class="gallery-item"><img src="/guanghan-ghc-02/reentry2.png" alt="返回舱再入2" data-wiki-asset="/guanghan-ghc-02/reentry2.png" loading="lazy" decoding="async" fetchpriority="low"><div class="thumbcaption">再入过程中的另一视角——等离子体尾迹清晰可见。400 公斤烧蚀材料在此阶段逐步消耗,保护返回舱结构。</div></div>
|
||||
<div class="gallery-item"><img src="/guanghan-ghc-02/reentry_wenchang.png" alt="重返文昌上空" data-wiki-asset="/guanghan-ghc-02/reentry_wenchang.png" loading="lazy" decoding="async" fetchpriority="low"><div class="thumbcaption">速度降至亚音速后,返回舱飞越文昌回收场上空。云层下海南岛海岸线依稀可辨。</div></div>
|
||||
<div class="gallery-item"><img src="/guanghan-ghc-02/drogue_chute.png" alt="开减速伞" data-wiki-asset="/guanghan-ghc-02/drogue_chute.png" loading="lazy" decoding="async" fetchpriority="low"><div class="thumbcaption">引导伞先行展开,稳定返回舱姿态,为后续主伞展开提供平稳的初始条件。</div></div>
|
||||
<div class="gallery-item"><img src="/guanghan-ghc-02/main_chute.png" alt="开主伞" data-wiki-asset="/guanghan-ghc-02/main_chute.png" loading="lazy" decoding="async" fetchpriority="low"><div class="thumbcaption">70 m 直径主伞完全展开,返回舱减速至着陆速度。主伞织物的每条加强筋在阳光照射下清晰可见。着陆点距预定坐标仅 149 m。</div></div>
|
||||
</div>
|
||||
|
||||
<p style="margin-top:1.5em;"><b>任务图集导航</b>:<a href="/home/mission/Guanghan_Program/GHC-01/Gallery">← GHC-01 图集</a> | <a href="/home/mission/Guanghan_Program/GHC-03/Gallery">GHC-03 图集 →</a></p>
|
||||
<p style="margin-top:1.5em;"><a href="/home/mission/Guanghan_Program/GHC-02">← 返回任务页</a></p>
|
||||
<script>
|
||||
(function () {
|
||||
function ready(fn) {
|
||||
if (document.readyState === 'loading') {
|
||||
document.addEventListener('DOMContentLoaded', fn, { once: true });
|
||||
} else {
|
||||
fn();
|
||||
}
|
||||
}
|
||||
|
||||
function captionFor(image) {
|
||||
var container = image.closest('figure, td, tr, .infobox-image, .gallery-item');
|
||||
if (!container) {
|
||||
return image.alt || '';
|
||||
}
|
||||
var caption = container.querySelector('.thumbcaption');
|
||||
return caption ? caption.textContent.trim() : (image.alt || '');
|
||||
}
|
||||
|
||||
function install(article) {
|
||||
if (!article || article.dataset.lightboxReady === '1') {
|
||||
return;
|
||||
}
|
||||
article.dataset.lightboxReady = '1';
|
||||
|
||||
var overlay = document.createElement('div');
|
||||
overlay.className = 'wiki-image-lightbox';
|
||||
overlay.hidden = true;
|
||||
overlay.innerHTML = '<figure class="wiki-image-lightbox-panel" role="dialog" aria-modal="true"><button class="wiki-image-lightbox-close" type="button" aria-label="Close image preview">x</button><img alt=""><figcaption class="thumbcaption"></figcaption></figure>';
|
||||
document.body.appendChild(overlay);
|
||||
|
||||
var previewImage = overlay.querySelector('img');
|
||||
var previewCaption = overlay.querySelector('figcaption');
|
||||
var closeButton = overlay.querySelector('.wiki-image-lightbox-close');
|
||||
|
||||
function closePreview() {
|
||||
overlay.hidden = true;
|
||||
previewImage.removeAttribute('src');
|
||||
previewCaption.textContent = '';
|
||||
document.body.classList.remove('wiki-image-lightbox-open');
|
||||
}
|
||||
|
||||
function openPreview(image, event) {
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
if (event.stopImmediatePropagation) {
|
||||
event.stopImmediatePropagation();
|
||||
}
|
||||
previewImage.src = image.currentSrc || image.src;
|
||||
previewImage.alt = image.alt || '';
|
||||
previewCaption.textContent = captionFor(image);
|
||||
overlay.hidden = false;
|
||||
document.body.classList.add('wiki-image-lightbox-open');
|
||||
closeButton.focus();
|
||||
}
|
||||
|
||||
article.querySelectorAll('img[data-wiki-asset]').forEach(function (image) {
|
||||
if (image.dataset.lightboxBound === '1') {
|
||||
return;
|
||||
}
|
||||
image.dataset.lightboxBound = '1';
|
||||
image.addEventListener('click', function (event) {
|
||||
openPreview(image, event);
|
||||
}, true);
|
||||
});
|
||||
|
||||
article.addEventListener('click', function (event) {
|
||||
var image = event.target.closest && event.target.closest('img[data-wiki-asset]');
|
||||
if (!image || !article.contains(image) || image.closest('.wiki-image-lightbox')) {
|
||||
return;
|
||||
}
|
||||
openPreview(image, event);
|
||||
});
|
||||
|
||||
closeButton.addEventListener('click', closePreview);
|
||||
overlay.addEventListener('click', function (event) {
|
||||
if (event.target === overlay) {
|
||||
closePreview();
|
||||
}
|
||||
});
|
||||
document.addEventListener('keydown', function (event) {
|
||||
if (event.key === 'Escape' && !overlay.hidden) {
|
||||
closePreview();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function installAll() {
|
||||
document.querySelectorAll('.wiki-article, .vulture-article').forEach(install);
|
||||
}
|
||||
|
||||
ready(function () {
|
||||
installAll();
|
||||
if (window.MutationObserver) {
|
||||
var observer = new MutationObserver(installAll);
|
||||
observer.observe(document.body, { childList: true, subtree: true });
|
||||
}
|
||||
window.setTimeout(installAll, 500);
|
||||
window.setTimeout(installAll, 1500);
|
||||
window.setTimeout(installAll, 3000);
|
||||
});
|
||||
}());
|
||||
</script>
|
||||
</article>
|
||||
|
||||
Reference in New Issue
Block a user