Skip to content

Pa55w0rd/ScrollSnap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📷 ScrollSnap - 专业网页滚动区域截图工具

ScrollSnap Logo

专业的滚动区域截图解决方案 - 完美支持页面内滚动容器的完整截取

Chrome Extension Version License Language

English | 简体中文

功能特色为什么需要它快速开始使用指南


💡 为什么需要它?

😫 你是否遇到过这些问题?

  • 想截取聊天记录,但市面上的截图工具只能截取可见部分
  • 想保存完整的评论列表,但滚动条里的内容截不到
  • 需要截取代码编辑器窗口,但页面中的滚动区域无法完整捕获
  • 尝试了各种工具和插件,都无法解决"滚动容器"的截图问题

✅ ScrollSnap 的解决方案

核心痛点:传统截图工具只能截取整个网页或当前可见区域,但对于页面内部的滚动容器(如聊天窗口、评论框、代码编辑器)却束手无策。

ScrollSnap 是专门为解决这个问题而生的工具,它能:

  • 智能识别页面中的滚动区域
  • 自动展开完整的滚动内容
  • 完整截取所有被隐藏的内容
  • 一键保存高质量图片

不仅如此,还提供了 3 种额外的截图模式,满足日常的所有截图需求。


🔍 产品简介

ScrollSnap 是一个功能强大的 Chrome 扩展,专注于解决网页滚动区域截图难题。

🎯 核心功能

功能 说明 独特优势
🎯 滚动区域截图 智能识别并完整截取页面内的滚动容器 核心功能
📄 完整页面截图 自动滚动截取整个网页 支持超长页面
可见区域截图 快速截取当前屏幕 1秒完成
✂️ 手动选择截图 拖拽选择任意区域 精确控制

💪 技术优势

  • 🔬 智能识别算法 - 自动检测可滚动元素
  • 🎨 html2canvas 渲染 - 完整保留样式和布局
  • 🚀 零配置使用 - 开箱即用
  • 🌍 中英文界面 - 自动语言切换
  • 📦 多种格式 - PNG/JPEG 可选

🎬 真实使用场景

场景 1:截取微信网页版聊天记录 💬

问题:聊天记录很长,只能看到当前屏幕的几条消息
解决:使用"滚动区域截图",一键截取完整对话历史
结果:完整保存所有聊天内容,包括图片和表情

场景 2:保存知乎/微博评论区 📝

问题:评论列表有滚动条,传统截图只能截取可见的几条
解决:自动识别评论列表滚动区域,完整截取所有评论
结果:保存完整的讨论内容,方便分享和存档

场景 3:截取在线代码编辑器 💻

问题:LeetCode、CodePen 等网站的代码窗口有滚动条
解决:识别代码编辑器区域,完整截取所有代码
结果:清晰展示完整代码,用于分享或文档

场景 4:截取商品长详情页 🛒

问题:淘宝、京东商品详情页很长,需要多次截图拼接
解决:使用"完整页面截图",自动滚动并拼接
结果:一张完整的商品详情图,方便对比和分享

✨ 四种强大模式

🎯 模式对比

模式 速度 难度 最佳场景 核心优势
滚动区域 ⚡⚡⚡ 简单 聊天窗口、评论列表 智能识别滚动容器
完整页面 ⚡⚡⚡ 简单 商品详情、文章 自动处理超长页面
可见区域 ⚡⚡⚡⚡⚡ 简单 快速截图 1秒完成
手动选择 ⚡⚡⚡⚡ 简单 精确控制 像QQ截图一样

🎨 附加特性

  • 多种格式:PNG(高质量)、JPEG(小文件)
  • 质量可调:1-100% 精确控制
  • 智能处理:自动识别固定元素、处理超长页面
  • 实时反馈:进度显示、详细错误提示
  • 零配置:安装即用,无需设置

🚀 安装使用

方法 1:从源代码安装(开发者)

  1. 克隆代码

    git clone https://github.com/Pa55w0rd/ScrollSnap.git
    cd ScrollSnap
  2. 加载扩展

    • 打开 Chrome 浏览器
    • 访问 chrome://extensions/
    • 开启右上角的"开发者模式"
    • 点击"加载已解压的扩展程序"
    • 选择项目文件夹
  3. 完成!工具栏会出现扩展图标。


📖 使用指南

快速开始

  1. 点击扩展图标 - 打开弹出窗口
  2. 选择截图模式 - 根据需求选择
  3. 调整参数(可选)- 格式和质量
  4. 开始截图 - 点击按钮

四种模式详解

1️⃣ 完整页面

适用场景

  • ✅ 商品详情页
  • ✅ 新闻文章
  • ✅ 长文档
  • ✅ 任何需要滚动的页面

使用方法

扩展图标 → 完整页面 → 开始截图

特点

  • 自动滚动整个页面
  • 智能处理固定元素(导航栏等)
  • 超长页面自动分段保存

2️⃣ 当前可见页面

适用场景

  • ✅ 快速截图
  • ✅ 弹出窗口
  • ✅ 当前视图
  • ✅ 不需要滚动的内容

使用方法

扩展图标 → 当前可见页面 → 开始截图

特点

  • 最快速(1-2秒)
  • 只截取当前屏幕
  • 不需要滚动

3️⃣ 手动选择区域

适用场景

  • ✅ 只需要部分内容
  • ✅ 排除广告和侧边栏
  • ✅ 截取特定图片或段落
  • ✅ 制作教程图片

使用方法

扩展图标 → 手动选择区域 → 开始截图
→ 按住鼠标左键拖拽 → 松开完成

特点

  • 拖拽选择范围
  • 实时显示尺寸(如:640 × 480 px)
  • 蓝色选区框 + 半透明遮罩

4️⃣ 滚动区域

适用场景

  • ✅ 聊天窗口
  • ✅ 评论列表
  • ✅ 代码编辑器窗口
  • ✅ 嵌入的滚动框

使用方法

扩展图标 → 滚动区域 → 开始截图
→ 移动鼠标到可滚动区域 → 点击蓝色高亮区域

特点

  • 自动识别可滚动元素
  • 蓝色边框高亮
  • 完整截取滚动内容

⚙️ 参数说明

图片格式

格式 特点 适用场景
PNG 无损压缩,质量高 重要文档、需要清晰度
JPEG 有损压缩,文件小 长页面、快速分享

图片质量

  • 90-100%:最高质量,文件较大
  • 70-89%:平衡质量和大小
  • 50-69%:快速分享,文件较小

🤔 常见问题

Q1:如何选择截图模式?

A: 根据需求选择:

  • 整个网页 → 完整页面
  • 快速截图 → 当前可见页面
  • 部分内容 → 手动选择区域
  • 聊天窗口 → 滚动区域

Q2:为什么"滚动区域"找不到蓝色边框?

A: 页面中没有可滚动的局部区域。建议改用"完整页面"模式。

Q3:手动选择能截取屏幕外的内容吗?

A: 不能。只能截取当前可见部分。需要完整内容请使用"完整页面"。

Q4:截图文件保存在哪里?

A: 浏览器的默认下载文件夹。文件名格式:webpage_日期_时间_模式.格式

Q5:如何截取多个区域?

A: 多次使用"手动选择区域"模式,或使用"完整页面"后用图片编辑器裁剪。


🛠️ 技术栈

  • Manifest V3 - 最新的扩展架构
  • Service Worker - 后台处理
  • Chrome Extension APIs - tabs, downloads, storage
  • html2canvas - 滚动区域渲染
  • Shadow DOM - 样式隔离
  • Canvas API - 图片处理

📂 项目结构

.
├── manifest.json           # 扩展配置
├── src/
│   ├── background.js      # 后台服务
│   ├── content.js         # 内容脚本(核心逻辑)
│   ├── popup/
│   │   ├── popup.html    # 弹出窗口
│   │   ├── popup.js      # 弹出窗口逻辑
│   │   └── popup.css     # 样式
│   └── lib/
│       └── html2canvas.min.js  # 第三方库
├── _locales/              # 多语言支持
│   ├── en/
│   │   └── messages.json # 英文
│   └── zh_CN/
│       └── messages.json # 中文
└── assets/
    └── icons/            # 扩展图标

🔄 更新日志

v1.1.0 (2025-10-29)

新功能

  • 新增:当前可见页面截图
  • 新增:手动选择区域截图

🐛 Bug 修复

  • 修复:滚动区域点击遮罩层问题
  • 修复:错误提示不清晰

🎨 优化

  • 优化:更友好的提示信息
  • 优化:详细的调试日志

v1.0.0 (2025-10-28)

🎉 初始版本

  • 完整页面截图
  • 滚动区域截图
  • PNG/JPEG 格式支持

🤝 贡献指南

欢迎贡献代码和提出建议!

报告问题

通过 GitHub Issues 报告 Bug

功能建议

在 Issues 中提出新功能建议

代码贡献

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 创建 Pull Request

📄 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情


📞 联系方式


⭐ Star History

如果这个项目对你有帮助,请给它一个 ⭐


立即体验四种强大的截图模式! 🎉

Made with ❤️ by [Your Name]

About

专业的滚动区域截图工具 | Professional scrollable region screenshot tool

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published