自动滚动的三种方式
| 方式 | 速度控制 | 缓动 | 需要录屏软件 |
|---|---|---|---|
| 浏览器自动滚动(鼠标中键点击) | 手动,靠指针控制 | 无 | 需要 |
| 控制台脚本 | 精确到秒 | 你写的任何曲线 | 需要 |
| 网址转视频渲染器 | 精确到秒 | 从预设中选择 | 不需要 |
浏览器自动滚动,也就是在 Windows 和 Linux 上点一下鼠标中键进入的模式,最顺手,也最不中用:速度取决于指针离你点击的位置有多远,所以会忽快忽慢,而且指针必须留在屏幕上才能操控。拿来粗略录一下没问题,要发布的视频就不行了。
录制时让网页自己滚动的三种方式:浏览器自带的自动滚动、一段可直接复制的控制台脚本,以及渲染器。还有滚多快、用哪条缓动曲线。
别用手滚。要么在录屏软件运行时,把一段简短的脚本粘贴到浏览器控制台,让页面在固定时间内沿缓动曲线滚动;要么把网址交给一个渲染器,由它计算滚动并生成视频,完全不需要录屏软件。起步节奏可以按页面每一屏高度大约两秒来算。
| 方式 | 速度控制 | 缓动 | 需要录屏软件 |
|---|---|---|---|
| 浏览器自动滚动(鼠标中键点击) | 手动,靠指针控制 | 无 | 需要 |
| 控制台脚本 | 精确到秒 | 你写的任何曲线 | 需要 |
| 网址转视频渲染器 | 精确到秒 | 从预设中选择 | 不需要 |
浏览器自动滚动,也就是在 Windows 和 Linux 上点一下鼠标中键进入的模式,最顺手,也最不中用:速度取决于指针离你点击的位置有多远,所以会忽快忽慢,而且指针必须留在屏幕上才能操控。拿来粗略录一下没问题,要发布的视频就不行了。
打开页面,打开开发者工具(F12,Mac 上是 ⌥ ⌘ I),把下面的代码粘贴到控制台(Console)里,按回车。它会先等三秒,让你启动录屏软件,然后在你设定的时间内沿一条缓入缓出曲线从顶部滚到底部。
const SECONDS = 20; // 滚动持续多久
const WAIT = 3; // 留给你启动录屏软件的时间
document.documentElement.style.scrollBehavior = 'auto';
window.scrollTo(0, 0);
const end = document.documentElement.scrollHeight - innerHeight;
const ease = (t) => (t < 0.5 ? 4 * t ** 3 : 1 - (-2 * t + 2) ** 3 / 2);
setTimeout(() => {
const start = performance.now();
const step = (now) => {
const t = Math.min(1, (now - start) / (SECONDS * 1000));
window.scrollTo(0, end * ease(t));
if (t < 1) requestAnimationFrame(step);
};
requestAnimationFrame(step);
}, WAIT * 1000);scrollBehavior = 'auto' 很关键。很多网站设置了 scroll-behavior: smooth,它会把脚本的每一次小幅移动都变成一段单独的动画,卡顿立刻就回来了。requestAnimationFrame 在每一个显示帧移动一次页面,所以滚动能均匀到显示器允许的极限。脚本仍然把帧率交给了你的录屏软件和电脑。渲染器把这两者都去掉了:Website Scroll Video 先把整个页面读取一遍,再为一段锁定 24、30 或 60 fps 的视频逐帧计算页面应在的位置,所以再重的页面也不会掉帧,再长的页面也不会跑偏。你设定的东西和脚本一样,按秒、按曲线,而且在花任何点数之前就能预览结果。
以“屏”为单位量一下页面:页面总高度除以窗口高度。一个典型的落地页有五到八屏。然后:
| 用途 | 每屏秒数 | 八屏的页面 |
|---|---|---|
| 预告或社交媒体短片 | 约 1 秒 | 8 秒 |
| 作品集或展示 | 约 2 秒 | 16 秒 |
| 可供阅读的导览 | 3 秒或以上,或加停顿 | 24 秒或以上 |
比一秒一屏还快,文字就会糊成一片,在 30 fps 或 GIF 里尤其明显。比三秒一屏还慢,观众就会走神。如果某个区块比其他的更重要,在那里停顿一下,比整个页面都放慢要好;Website Scroll Video 最多支持 6 处停顿,每处 0.5 到 5 秒。
一段往下滚、然后直接切回顶部的视频,循环时会有明显的跳动。改为沿同一条曲线往下滚再滚回顶部:最后一帧和第一帧对上,循环就天衣无缝。在 Website Scroll Video 里,这就是「往返滚动」播放模式,还可以选择在返回前于底部停留,以及在循环重新开始前于顶部停留。
粘贴一个链接,免费预览滚动效果。注册即送 51 个免费点数,无需信用卡,导出的任何视频都没有水印。
点一下鼠标中键再移动指针,可以使用浏览器自带的自动滚动;或者把一小段脚本粘贴到开发者工具的控制台里,让它沿缓动曲线每帧调用一次 window.scrollTo。用来录视频的话,脚本要均匀得多。
Windows 和 Linux 上的 Chrome 支持鼠标中键自动滚动,但速度跟着指针走。它没有内置的定时滚动。扩展可以加上这个功能,或者用控制台脚本或网址渲染器。
沿同一条曲线往下滚再滚回顶部,让最后一帧和第一帧对上,而不是从页面底部直接切回顶部。