← Все статьи

Туториалы

Подсчёт слов и время чтения на любой странице

Сколько займёт эта статья — две минуты или двадцать? Большинство страниц этого не говорит. Это правило добавляет наверху каждой статьи маленькую полосу: число слов и оценочное время чтения.

Правило

JavaScript правила, URL-паттерн для блога или сайта, который ты читаешь:

const art = document.querySelector('article, main, .entry-content');
if (art) {
  const words = art.innerText.trim().split(/\s+/).length;
  const min = Math.max(1, Math.round(words / 200));
  const bar = document.createElement('div');
  bar.textContent = words + ' слов · ~' + min + ' мин чтения';
  bar.style.cssText =
    'position:sticky;top:0;z-index:9999;padding:6px 12px;' +
    'background:#1f2937;color:#fff;font:13px/1.4 system-ui;' +
    'text-align:center';
  art.prepend(bar);
}

Как это работает

Подсчёт слов

art.innerText — это видимый текст статьи (без HTML-тегов). split(/\s+/) режет его на каждой последовательности пробелов — длина массива и есть число слов. Просто и достаточно точно.

200 слов в минуту

Средний темп чтения-с-пониманием — 200–250 слов в минуту. Берём 200 как осторожную середину; Math.max(1, ...) не даёт короткому тексту показать «0 мин».

Sticky-полоса

position: sticky; top: 0 держит полосу видимой, пока ты прокручиваешь статью — маленькая информация, всегда под рукой.

Вариант — индикатор прогресса чтения

Хочешь видеть, сколько осталось от статьи? Добавь наверху тонкую полосу, растущую с прокруткой:

const p = document.createElement('div');
p.style.cssText =
  'position:fixed;top:0;left:0;height:3px;z-index:99999;' +
  'background:#14b8a6;width:0';
document.body.appendChild(p);
addEventListener('scroll', () => {
  const h = document.body.scrollHeight - innerHeight;
  p.style.width = (scrollY / h * 100) + '%';
});

Ловушки

Смотри также

Установи JustZix — и знай заранее, на что ты идёшь.

Оцени эту статью

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

Попробуй сам

Установи JustZix и вставь любой сниппет из этой статьи. Две минуты от нуля до работающего правила на всех твоих устройствах.

Получить JustZix

Возможности · Как это работает · Примеры · Применение