← Все примеры

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 минуты и запускает твой код на каждой подходящей странице. Без аккаунта, без оплаты.

Скачать бесплатно Смотреть применение