1 звезда на GitHub = 1 новый компонент.

Поставить звезду
Навигацияscrollnavigationindicator

Scroll Indicator

Ультратонкая верхняя полоса, показывающая прогресс прокрутки страницы.

Живое превью

Использование

Скопируйте и вставьте этот код в ваш React-компонент:

tsx
import { ScrollProgressTop } from 'react-component-kit-ui/navigation';

<ScrollProgressTop>Content</ScrollProgressTop>

Ручная установка

Если вы не используете пакет npm, создайте файл и вставьте следующий код: src/components/ScrollProgressTop.tsx + ScrollProgressTop.css:

ScrollProgressTop.tsx
'use client';

import { useEffect, useRef } from 'react';
import './ScrollProgressTop.css';

/** ScrollProgressTop — ported from astro-component-kit. */
export interface ScrollProgressTopProps {
}

export function ScrollProgressTop({}: ScrollProgressTopProps) {

  // Ported from the Astro <script>: runs once after mount (DOM logic kept as in the Astro kit).
  const mounted = useRef(false);
  useEffect(() => {
    if (mounted.current) return;
    mounted.current = true;
    window.addEventListener('scroll', () => {
        const bar = document.getElementById('scroll-bar');
        const scroll = document.documentElement.scrollTop;
        const height = document.documentElement.scrollHeight - document.documentElement.clientHeight;
        const scrolled = (scroll / height) * 100;
        if (bar) bar.style.width = scrolled + '%';
      });
    // eslint-disable-next-line react-hooks/exhaustive-deps
  }, []);

  return (
    <>
      <div className="scroll-ind" id="scroll-bar" data-rk-75c240=""></div>
    </>
  );
}

export default ScrollProgressTop;
ScrollProgressTop.css
/* ScrollProgressTop — ported from astro-component-kit (navigation/ScrollProgressTop.astro) */

.scroll-ind:where([data-rk-75c240]) { position: fixed; top: 0; left: 0; width: 0%; height: 3px; background: #6366f1; z-index: 1000; box-shadow: 0 0 10px #6366f1; }

Краткая информация

Категория
Навигация
Имя файла
ScrollProgressTop.tsx
Зависимости
Нет — чистый React + CSS
Теги
scrollnavigationindicator