← 全部示例

JavaScript 媒体 slack.com

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 });

如何使用此示例

  1. 用上方按钮复制代码。
  2. 安装 JustZix(2 分钟),在目标页面打开扩展。
  3. 添加一条匹配该页面的新规则。
  4. 将代码粘贴到规则的 JavaScript 面板并保存 — 每次访问页面时都会运行。

为此示例评分

暂无评分 — 成为第一个。

此示例有效吗?

没有可粘贴的地方,代码片段毫无用处。

JustZix 安装只需 2 分钟,并在每个匹配的页面上运行你的代码。无需账户、无需付费。

免费下载 查看应用场景