← Все примеры

JavaScript Продуктивность substack.com

Substack: индикатор прогресса чтения

Добавляет тонкую полосу вверху страницы, показывающую, какую часть статьи вы уже прочитали.

Код для копирования

// Reading-progress bar at the top of the page, tied to the post body
(function () {
  if (document.getElementById('jz-sub-progress')) { return; }
  var bar = document.createElement('div');
  bar.id = 'jz-sub-progress';
  bar.style.cssText = 'position:fixed;top:0;left:0;height:3px;width:0;background:#ff6719;z-index:99999;transition:width 90ms linear;';
  document.documentElement.appendChild(bar);
  function root() {
    return document.querySelector('.body.markup, .available-content, [class*="postBody"]');
  }
  function update() {
    var r = root(); if (!r) { bar.style.width = '0'; return; }
    var rect = r.getBoundingClientRect();
    var total = rect.height + window.innerHeight * 0.4;
    var seen = Math.min(total, Math.max(0, window.innerHeight - rect.top));
    var pct = Math.min(100, Math.max(0, (seen / total) * 100));
    bar.style.width = pct + '%';
  }
  update();
  window.addEventListener('scroll', update, { passive: true });
  window.addEventListener('resize', update);
})();

Как использовать этот пример

  1. Скопируй код кнопкой выше.
  2. Установи JustZix (2 минуты) и открой расширение на нужной странице.
  3. Добавь новое правило, совпадающее с этой страницей.
  4. Вставь код в панель JavaScript правила и сохрани — он запускается при каждом заходе на страницу.

Оцени этот пример

Оценок пока нет — оцени первым.

Этот пример работает?

Сниппеты бесполезны, если их некуда вставить.

JustZix устанавливается за 2 минуты и запускает твой код на каждой подходящей странице. Без аккаунта, без оплаты.

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