Skip to content

Fe1exxx/Focus_and_scroll_indicator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📈 Плавающий индикатор прокрутки + Кнопка "Наверх" (Улучшенная версия)

Простой, но стильный компонент для любого сайта — показывает прогресс прокрутки и позволяет быстро вернуться наверх.
✅ Улучшенная логика расчёта + максимальная производительность.

React Vite Tailwind CSS


🚀 Что умеет приложение

✅ Плавающий индикатор прокрутки вверху страницы
✅ Кнопка "Наверх" в правом нижнем углу
✅ Мгновенное обновление индикатора (без задержки)
✅ Плавная прокрутка к началу страницы
✅ Адаптивный дизайн — работает на любом устройстве
✅ Улучшенная логика расчёта прогресса (учитывает крайние случаи)
✅ Использование passive: true для максимальной производительности


🧩 Структура проекта

src/
├── App.jsx          ← Главный компонент
├── ProgressBar.jsx  ← Индикатор прокрутки
└── styles.css       ← Базовые стили

📝 Как использовать

  1. Прокрути страницу вниз → появится синяя полоска вверху
  2. Нажми кнопку ⬆️ в правом нижнем углу → страница плавно вернётся наверх
  3. Обнови страницу → индикатор сбросится, но кнопка останется

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

Индикатор использует useEffect и useState для отслеживания прокрутки.
Расчёт процента выполняется по формуле:

const totalScrollable = docHeight - winHeight;
const percent = Math.min(100, Math.max(0, (scrollTop / totalScrollable) * 100));

Кнопка "Наверх" использует нативный метод:

element.scrollIntoView({ behavior: 'smooth' });

Для максимальной производительности обработчик скролла подключается с опцией:

{ passive: true }

🌟 Замечание

Это учебный проект, созданный для понимания:

  • Работы с событием scroll
  • Расчёта прогресса прокрутки
  • Использования useRef и useEffect
  • Создания удобных UI-элементов

В будущем можно добавить:

  • Цветовую анимацию индикатора
  • Анимацию появления кнопки
  • Отображение процента рядом с полоской

🙏 Благодарности

Создано в рамках обучения React.
Подходит для начинающих, кто хочет понять, как работают эффекты, референсы и DOM-манипуляции.


🛠️ Как запустить локально

git clone https://github.com/yourname/your-repo.git
cd your-repo
npm install
npm run dev

📬 Поддержка

Если понравилось — ставь ⭐ и делай fork!
Вопросы и предложения — в Issues.


About

Created with CodeSandbox

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published