Задать вопрос
effect_tw
@effect_tw

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

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

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

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

Похожие вопросы