Slack:暂停动态 GIF
将动态 GIF 冻结在第一帧,让对话不再闪烁,更易专注。
可复制的代码
// Pause animated GIFs by freezing them onto a static canvas after they load
function freezeGifs() {
document.querySelectorAll('img[src*=".gif"]:not([data-jz-frozen])').forEach(function (img) {
img.setAttribute('data-jz-frozen', '1');
if (!img.naturalWidth) { return; }
const c = document.createElement('canvas');
c.width = img.naturalWidth;
c.height = img.naturalHeight;
try {
c.getContext('2d').drawImage(img, 0, 0);
img.src = c.toDataURL();
} catch (e) { /* cross-origin image, leave as is */ }
});
}
freezeGifs();
const gifObs = new MutationObserver(freezeGifs);
gifObs.observe(document.documentElement, { childList: true, subtree: true });
如何使用此示例
- 用上方按钮复制代码。
- 安装 JustZix(2 分钟),在目标页面打开扩展。
- 添加一条匹配该页面的新规则。
- 将代码粘贴到规则的 JavaScript 面板并保存 — 每次访问页面时都会运行。
为此示例评分
暂无评分 — 成为第一个。