Назад в блог

Плавная прокрутка в действии с использованием React: руководство

Плавная прокрутка в действии с использованием React: руководство

React — это библиотека JavaScript с открытым исходным кодом, используемая для создания футуристических дизайнов веб-сайтов и улучшения пользовательских интерфейсов. Благодаря своей надежности, гибкости и эффективности она превзошла конкурирующие библиотеки и фреймворки для фронтенда. React предоставляет отличные возможности и выдающиеся функции, которые облегчают настройку и динамическую анимацию.

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

В этом руководстве мы подробно рассмотрим шаги по реализации плавной прокрутки с использованием React.

Давайте начнем!

Предварительные требования

Чтобы следовать этому руководству, вам понадобится следующее:

Базовая настройка: установка react-scroll

В этом руководстве для начинающих мы разработаем простое приложение с использованием react-scroll. Если вы знакомы с основами React и хотите повысить свой уровень знаний о функциях react-scroll, обратитесь к этим кратким шагам.

Сначала установите react-scroll с помощью следующей команды:

Затем импортируйте пакет react-scroll:

После этого вставьте компонент <Link />, который будет указывать на определенный раздел приложения:

Давайте двигаться дальше и разработаем приложение React с плавной прокруткой.

Шаг 1: Клонирование и запуск приложения React

В нашем руководстве мы будем использовать стартовый проект React, который включает панель навигации вверху. Там вы увидите пять уникальных <sections>, расположенных последовательно.

В настоящее время ссылки в панели навигации представляют собой теги привязки (anchor tags). Однако вскоре нам нужно будет обновить их, чтобы включить плавную прокрутку. Перейдите на страницу React With Smooth Scrolling, чтобы перейти в репозиторий проекта. Важно отметить, что ссылка ведет на ветку start. Ветка master содержит все выполненные изменения. Открыв URL-адрес, вы увидите репозиторий:

Smooth Scrolling in Action Using React: A Tutorial 1

На странице репозитория вы увидите зеленую кнопку Code. НАЖМИТЕ на стрелку раскрывающегося списка:

Smooth Scrolling in Action Using React: A Tutorial 2

При нажатии на стрелку вы увидите ссылку HTTP ссылку:

Smooth Scrolling in Action Using React: A Tutorial 3

Теперь перейдите в свой терминал git и используйте следующую команду, чтобы клонировать проект на свой локальный компьютер:

В каталоге src/Components вы найдете файл Navbar.js, который содержит <Navbar> с элементами nav-items, соответствующими пяти уникальным <Section>, расположенным последовательно:

Затем перейдите к App.js файлу в каталоге src. Там вы увидите, что <Navbar> расположен вместе с пятью компонентами <Section>:

По умолчанию каждый <Section> компонент будет содержать title и subtitle.

  • DRY Принцип в действии

Поскольку в нашем руководстве мы используем шаблонный текст, давайте добавим файл dummyText.js, чтобы сэкономить время и избежать повторений. Используйте только что созданный JavaScript файл для передачи в каждый элемент <Section>.

  • Установка React

Используйте следующую команду для запуска приложения:

Запуск rpm запустит ваше приложение в режиме разработки. Перейдите на localhost:3000 и проверьте работу приложения в вашей системе:

Smooth Scrolling in Action Using React: A Tutorial 4

Теперь, когда наше приложение запущено, давайте перейдем к следующему шагу и установим react-scroll на следующем шаге.

Шаг 2: Установка и настройка React-Scroll

Сначала вам нужно перейти к пакету в Node Package Manager, чтобы скачать react-scroll . На момент написания этого руководства мы используем последнюю версию react-scroll , 1.8.7. Обязательно установите последнюю версию, если в будущем выйдет обновление:

Выполните следующую команду для установки react-scroll:

После этого перейдите в файл Navbar.js и импортируйте Link и animateScroll из react-scroll. Для простоты и удобства давайте импортируем animateScroll как scroll:

После этого обновите nav-items, чтобы использовать компонент <Link>. Вы увидите множество свойств, перечисленных в <Link> компонент, который является тривиальным для нашего руководства. Тем не менее, вы можете изучить эти свойства, ознакомившись с страницей документации.

Некоторые важные свойства, заслуживающие вашего внимания:

  • activeClass – Класс, используемый, когда элемент активен.

  • to – Указывает целевой элемент, к которому нужно прокрутить.

    • Свойство to имеет решающее значение, поскольку оно указывает компоненту, к какому элементу выполнять прокрутку.

  • spy: Позволяет выбирать Link, когда прокрутка находится в целевой позиции.

  • smooth: Анимирует прокрутку.

  • offset: Прокручивает дополнительные px, например, в качестве отступа.

    • Вы также можете использовать offset, чтобы определить дополнительное расстояние прокрутки для перехода к конкретному <Section>.

  • duration: Время анимации прокрутки, которое может быть числом или функцией.

Вот пример свойств, которые можно использовать для каждого компонента <Link>. Единственным отличием между ними будет свойство to, так как все они указывают на разные <Section>ы:

Рекомендуется обновить все элементы nav-items. После того как все элементы будут успешно добавлены, вернитесь в браузер и посмотрите на плавную прокрутку в действии.

Step 3: Style Active Links

На этом шаге мы будем использовать свойства CSS, чтобы изменить дизайн нашего блока кода и сделать его стильным. Свойство activeClass позволяет определить класс и применить его к компоненту <Link>, когда элемент to активен. Если у используемого вами <Link> элемент to отображается в верхней части страницы, этот <Link> считается активным. Нажмите на <Link> или прокрутите страницу до <Section> вручную, чтобы активировать <Link>.

Давайте протестируем и посмотрим, как это работает. Откройте Chrome DevTools и проверьте пятый <Link>, как показано ниже. Нажмите на <Link> или вручную прокрутите <Section> к нижней части страницы, и вы увидите, что применяется активный класс:

В качестве дополнительного шага создайте активный класс и подчеркните ссылку. Затем добавьте этот небольшой блок CSS в файл App.css в директории srcдиректории:

После этого обновите браузер. Прокрутите страницу немного, и вы заметите, что указанный <Link> теперь подчеркнут:

Шаг 4: Добавление дополнительных функций

В дополнение к свойствам, использованным выше, существуют и другие функции, такие как scrollToTop, scrollToBottom, и это лишь некоторые из них. Вы можете вызывать эти функции напрямую и явно управлять их действиями. Что касается этих функций, естественно, логотип приложения в панели навигации будет возвращать вас в начало главной страницы.

Используя функцию scrollToTop, добавьте обработчик клика на nav-logo, чтобы возвращать пользователя в начало страницы:

Используя функцию scrollToTop, добавьте обработчик клика на nav-logo, чтобы прокручивать страницу для пользователя до самого низа:

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

Заключение

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

В качестве следующего шага в вашем обучении ознакомьтесь с другими руководствами по React и JavaScript, которые вы можете найти в нашем блоге:

Приятной работы!

author

Preslav Dobrev

Автор · CloudSigma

Preslav Dobrev — креативный дизайнер в CloudSigma, сосредоточенный на формировании последовательного корпоративного образа с помощью традиционных и инновационных маркетинговых каналов. Он умело сочетает художественное видение со стратегическим маркетингом, создавая убедительные истории бренда.

Комментарии

Комментариев пока нет. Будьте первым.