CYFOR
写的很差,毕竟张小龙说要提防 blog 写得很好的产品经理
非资深产品经理,8 年+工作经验,邮箱 cyfor@foxmail.com
垂直经验:DevOps 、 OpenApi 、 ToB 、 ToG 、区块链、数字政务、智慧城市
(左侧社交链接不重要,放几个是为了好看)

修改 index.scss 给 VuePress 增加图片左右滑动区块

更新 JayChou-Wiki 时从各处收集了很多历史图片资源,VuePress 的是基于 MarkDown 文件生成的页面,所以支持 md 的插入图片语法和 html 标签。因为用了 hope 主题,内置了图片预览插件,实现了以下交互效果:

- 左右滑动按顺序浏览页面内其他的图片
- 查看图片的描述
- 对图片进行缩放
- 全屏浏览图片
- 下载图片
- 分享图片

但无法实现图片的左右滑动,当单个页面需要引用大量图片时,即便每张图片都单独设置了尺寸,也会显得很杂乱。找了很久解决方案,在 hope 页面的源码仓库中发现作者本人是直接写的 html 平铺效果。

github-hope-photo-swipe.md
github-hope-photo-swipe.md

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

jaychou.wiki自定义vuepress图片左右滑动效果
// 图片滑动组件样式
.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>

You may also like...

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理