effect_tw
@effect_tw

Как сделать выделение элемента как на примере?

Есть три элемента когда нажимаешь на один из их он выделяется, это понятно. Но вот когда делается переход от 1 элемента к 3 -ему, выделение еще пролетает над вторым элементом(ССЫЛКА НА КОДСЭНД https://codesandbox.io/s/cvn6w). Как это реализовано? Проверка происходит является ли нажатый элемент следующим, или через еще один? И тогда добавлять на определенное время класс, и потом удалять? Подскажите пожалуйста
  • Вопрос задан
  • 109 просмотров
Решения вопроса 1
@Eshil
Не смотрел как именно это делают MaterialUI, но как это можно сделать:
Создавать элемент индикатора не внутри конкретного таба, а внутри корневого для всех табов элемента.
Стейт определяющий какой таб активен будет в этом же компоненте и когда активный таб меняется, то реф на него (точнее на DOM-элемент который он редерит) передается индикатору, который и получает необходимое смещение и ширину через измерение DOM-элемента.

Тут есть важный подводный камень - не забыть изменить параметры индикатора при ресайзе (вызванном, например, изменением ширины окна браузера) активного таба
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы