Banner

import { Banner } from '@megafon/ui-core';
Примеры и код
Свойства и методы
Код DemoSlide
export const DemoSlide = ({ children, background = '#fff' }) => (
<div
style={{
height: '100%',
backgroundColor: background,
display: 'flex',
justifyContent: 'center',
alignItems: 'center',
fontSize: '30px',
}}
>
{children}
</div>
);

Базовое использование (скруглённые углы и белая цветовая тема стрелок навигации)

Показать код
<ContentArea>
  <Banner arrowTheme="white">
      <DemoSlide background="#00B956">1</DemoSlide>
      <DemoSlide background="#10E272">2</DemoSlide>
      <DemoSlide background="#00B956">3</DemoSlide>
      <DemoSlide background="#10E272">4</DemoSlide>
      <DemoSlide background="#00B956">5</DemoSlide>
  </Banner>
</ContentArea>

Прямые углы

Показать код
<ContentArea>
  <Banner radius="corners" arrowTheme="white">
      <DemoSlide background="#00B956">1</DemoSlide>
      <DemoSlide background="#10E272">2</DemoSlide>
      <DemoSlide background="#00B956">3</DemoSlide>
      <DemoSlide background="#10E272">4</DemoSlide>
      <DemoSlide background="#00B956">5</DemoSlide>
  </Banner>
</ContentArea>

Тёмная цветовая тема стрелок навигации (deprecated)

Показать код
<ContentArea>
  <Banner arrowTheme="dark">
      <DemoSlide background="#00B956">1</DemoSlide>
      <DemoSlide background="#10E272">2</DemoSlide>
      <DemoSlide background="#00B956">3</DemoSlide>
  </Banner>
</ContentArea>

Навигация полосками внутри баннера

Стандартная (на сером и прозрачном фоне)

Показать код
<ContentArea>
  <Banner arrowTheme="white" paginationType="flat">
      <DemoSlide background="#F6F6F6">1</DemoSlide>
      <DemoSlide background="transparent">2</DemoSlide>
      <DemoSlide background="#F6F6F6">3</DemoSlide>
  </Banner>
</ContentArea>

Белая (на зелёном и фиолетовом фоне)

Показать код
<ContentArea>
  <Banner arrowTheme="white" paginationType="flat" backgroundColor="green">
      <DemoSlide background="#00B956">1</DemoSlide>
      <DemoSlide background="#731982">2</DemoSlide>
      <DemoSlide background="#00B956">3</DemoSlide>
  </Banner>
</ContentArea>

Тёмная (на градиентном и светлом фоне)

Показать код
<ContentArea>
  <Banner arrowTheme="white" paginationType="flat" backgroundColor="gradient">
      <DemoSlide background="transparent">1</DemoSlide>
      <DemoSlide background="#F6F2F9">2</DemoSlide>
      <DemoSlide background="transparent">3</DemoSlide>
  </Banner>
</ContentArea>

Прокрутка

C зацикливанием (плоские кнопки пагинации внутри баннера)

Показать код
<ContentArea>
  <Banner loop arrowTheme="white" paginationType="flat" backgroundColor="green">
      <DemoSlide background="#00B956">1</DemoSlide>
      <DemoSlide background="#10E272">2</DemoSlide>
      <DemoSlide background="#00B956">3</DemoSlide>
  </Banner>
</ContentArea>

Автоматическая прокрутка (пагинация внутри баннера с таймером)

Показать код
<ContentArea>
  <Banner loop autoPlay autoPlayDelay={3000} arrowTheme="white" paginationType="flat" backgroundColor="green">
      <DemoSlide background="#00B956">1</DemoSlide>
      <DemoSlide background="#10E272">2</DemoSlide>
      <DemoSlide background="#00B956">3</DemoSlide>
  </Banner>
</ContentArea>

По умолчанию время прокрутки увеличивается при взаимодействии со слайдером. Данный функционал можно отключить с помощью флага noIncreaseAutoplayDelay.

Показать код
<ContentArea>
      <Banner loop autoPlay autoPlayDelay={3000} arrowTheme="white" noIncreaseAutoplayDelay>
          <DemoSlide background="#00B956">1</DemoSlide>
          <DemoSlide background="#10E272">2</DemoSlide>
          <DemoSlide background="#00B956">3</DemoSlide>
      </Banner>
  </ContentArea>

Пауза прокрутки при наведении курсора на компонент (тёмная пагинация внутри баннера)

Показать код
<ContentArea>
  <Banner loop autoPlay autoPlayDelay={3000} arrowTheme="white" paginationPosition="top-in" paginationTheme="dark" paginationType="flat" pauseOnHover>
      <DemoSlide background="#EDEDED">1</DemoSlide>
      <DemoSlide background="#F6F6F6">2</DemoSlide>
      <DemoSlide background="#EDEDED">3</DemoSlide>
  </Banner>
</ContentArea>

Единственный слайд

Если слайд единственный стрелки и навигация скрываются, автопрокрутка отключается

Показать код
<ContentArea>
      <Banner loop autoPlay autoPlayDelay={3000} arrowTheme="white" pauseOnHover noIncreaseAutoplayDelay>
          <DemoSlide background="#00B956">1</DemoSlide>
      </Banner>
  </ContentArea>

Показать следующий слайд на мобильном разрешении

В данном случае анимация прокрутки слайдов меняется и становится, как в карусели, часть следующего слайда видна

Показать код
<ContentArea>
      <Banner arrowTheme="white" paginationType="flat" showNextSlide>
          <DemoSlide background="#EDEDED">1</DemoSlide>
          <DemoSlide background="#F6F6F6">2</DemoSlide>
          <DemoSlide background="#EDEDED">3</DemoSlide>
      </Banner>
  </ContentArea>
Prop nameTypeDefaultDescription
classNamestring | undefinedСss класс для внешнего контейнера
classes{ swiper?: string | undefined; slide?: string | undefined; arrow?: string | undefined; arrowPrev?: string | undefined; arrowNext?: string | undefined; pagination?: string | undefined; dot?: string | undefined; noSwiping?: string | undefined; } | undefined{}Дополнительные классы для корневого и внутренних элементов
dataAttrs{ root?: Record<string, string> | undefined; swiper?: Record<string, string> | undefined; slide?: Record<string, string> | undefined; arrowPrev?: Record<...> | undefined; ... 4 more ...; dotInner?: Record<...> | undefined; } | undefinedДополнительные data атрибуты к внутренним элементам
paginationAlignPaginationAlignType | undefinedcenterВыравнивание блока пагинации. DEPRECATED: 'left'
paginationThemePaginationThemeType | undefinedЦветовая тема пагинации
paginationTypePaginationType | undefinedТип кнопок пагинации
paginationPositionPaginationPositionType | undefinedРасположение пагинации
withPaginationBottomOffsetboolean | undefinedfalseПредполагается использование с наезжанием на баннер следующего за баннером элемента
autoPlayboolean | undefinedfalseАвтоматическая прокрутка
autoPlayDelaynumber | undefined5000Задержка автоматической прокрутки
loopboolean | undefinedfalseПрокрутка с зацикливанием
pauseOnHoverboolean | undefinedfalseПауза автоматической прокрутки при наведении курсора на компонент
backgroundColorBackgroundColorType | undefinedФоновый цвет
radiusRadiusType | undefinedroundedРадиус границы
navThemeNavThemeType | undefinedЦветовая тема навигации (не используется)
arrowThemeThemeType | undefineddarkЦветовая тема стрелок
autoHeightboolean | undefinedfalseАвтоматическая высота слайдов
noIncreaseAutoplayDelayboolean | undefinedНе увеличивать время прокрутки при взаимодействии с баннером
showNextSlideboolean | undefinedПоказать часть следующего слайда
hasMarginTopboolean | undefinedfalseОтступ сверху
getSwiper((instance: Swiper) => void) | undefinedRef на swiper
onNextClick((index: number) => void) | undefinedОбработчик клика по стрелке "вперед" (должен быть обернут в useCallback)
onPrevClick((index: number) => void) | undefinedОбработчик клика по стрелке "назад" (должен быть обернут в useCallback)
onDotClick((index: number) => void) | undefinedОбработчик клика по точке навигации (должен быть обернут в useCallback)
onChange((index: number) => void) | undefinedОбработчик смены слайда (должен быть обернут в useCallback)