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

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

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

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

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

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