Введение Пример Заключение Компоненты

Скрываем scroll

Scroll появляется в вёрстке компонентов когда элементов, например ссылок в меню, больше, чем может вместить в себе ширина или высота этого меню. Аналогичная ситуация и при вёрстке компонента под разные разрешения. Обычно мы всегда скрываем scroll, чтобы на странице у пользователя не появлялись ненужные артефакты.

В этом туториале мы расскажем на примере scroll menu как мы избавляемся от scroll.

Пример

Для начала нам нужно создать структуру будущего scroll menu. Делаем <div> O_ScrollMenu и кладем в него еще один <div> C_MenuItems. У нас уже есть туториал про menu items.

import React, { PureComponent } from 'react'
import A_MenuItem from '../../atoms/A_MenuItem/A_MenuItem.jsx'
import './O_ScrollMenu.scss'

export default class O_ScrollMenu extends PureComponent {
  constructor(props) {
    super(props)
  }

  render() {
    const { menu } = this.props
    const { top } = menu
    const menuElements = []

    top.forEach((item, i) => {
      menuElements.push(<A_MenuItem {...item} key={'top' + i} />)
    })

    return (
      <div className="O_ScrollMenu">
        <div className="C_MenuItems">{menuElements} </div>
      </div>
    )
  }
}

Теперь нужно задать стили для O_ScrollMenu. Именно в css мы и будем убирать scroll. Главные параметры это overflow-y: hidden и overflow-x: scroll. Вот так это выглядит в коде. Можешь посмотреть получившийся scroll menu.

.O_ScrollMenu {
  display: flex;
  justify-content: center;
  margin: 10% auto;
  height: 300px;
  overflow-x: hidden;
  width: 360px;
  padding: 40px 28px;
  box-shadow: 9px 9px 35px rgba(0, 0, 0, 0.09);
  border-radius: 10px;
}

.O_ScrollMenu .C_MenuItems {
  display: flex;
  flex-direction: column;
  padding-right: 380px;
  white-space: nowrap;
  margin-left: 84px;
  overflow-y: scroll;
  overflow-x: hidden;
}
 

Заключение

С помощью этого метода мы эффективно убираем ненужные для пользователя элементы.

Компоненты

Продолжи изучать туториалы с новыми знаниями о фишках в работе scroll.