修改index.scss给VuePress增加图片左右滑动区块
更新JayChou-Wiki时从各处收集了很多历史图片资源,VuePress的是基于MarkDown文件生成的页面,所以支持md的插入图片语法和html标签。因为用了hope主题,内置了图片预览插件,实现了以下交互效果:
– 左右滑动按顺序浏览页面内其他的图片
– 查看图片的描述
– 对图片进行缩放
– 全屏浏览图片
– 下载图片
– 分享图片
但无法实现图片的左右滑动,当单个页面需要引用大量图片时,即便每张图片都单独设置了尺寸,也会显得很杂乱。找了很久解决方案,在hope页面的源码仓库中发现作者本人是直接写的html平铺效果。

但是每个页面都单独写html也太麻烦了,所以使用AiAgent(忘记是阿里通义灵码还是腾讯CodeBuddy了,反正这种小任务都差不多)在src.vuepress\styles\index.scss添加了自定义全局样式,最终实现效果如下:

// 图片滑动组件样式
.image-scroll-container {
width: 100%;
overflow: hidden;
position: relative;
margin: 1rem 0;
}
.image-scroll-wrapper {
overflow-x: auto;
-webkit-overflow-scrolling: touch;
padding: 1rem 0;
}
.image-scroll-content {
display: flex;
gap: 1rem;
padding: 0 1rem;
min-width: max-content;
}
.image-scroll-content img {
height: 200px;
min-width: 300px;
object-fit: cover;
border-radius: 8px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
// 图片说明文本样式
.image-scroll-content figure {
margin: 0;
display: flex;
flex-direction: column;
align-items: center;
}
.image-scroll-content figcaption {
margin-top: 0.5rem;
font-size: 0.9rem;
color: #666;
text-align: center;
}
@media (max-width: 768px) {
.image-scroll-content img {
height: 150px;
min-width: 200px;
}
.image-scroll-content figcaption {
font-size: 0.8rem;
}
}
使用时直接在页面中添加:
<div class="image-scroll-container">
<div class="image-scroll-wrapper">
<div class="image-scroll-content">
<figure>
<img src="图片链接" alt="图片标签" />
<figcaption>图片显示名</figcaption>
</figure>
</div>
</div>
</div>
