Интерфейс Material: как изменить видимость большого пальца слайдера, когда пользователь взаимодействует со слайдером, т.Е. Изменяет значение слайдера?

#css #reactjs #material-ui #slider

#css #reactjs #материал-пользовательский интерфейс #слайдер

Вопрос:

В моем приложении есть слайдер пользовательского интерфейса Material. Я хочу, чтобы большой палец оставался невидимым до тех пор, пока пользователь не изменит значение ползунка. Когда используется ползунок, я хочу, чтобы большой палец оставался видимым при значении, которое устанавливает пользователь. Используя свойство active CSS, мне удалось скрыть большой палец и показывать его только тогда, когда пользователь его использует, то есть когда ползунок перетаскивается пальцем или указателем мыши. Когда взаимодействие прекращается, я хочу, чтобы оно оставалось на выбранном значении, но оно исчезает.

  1. Начальное состояние введите описание изображения здесь
  2. Слайдер взаимодействует с (перетаскивается) введите описание изображения здесь
  3. Завершенное взаимодействие введите описание изображения здесь

Я попытался добавить еще один дублированный слайдер с постоянно видимым компонентом thumb, а затем попытался условно отобразить один из слайдеров в зависимости от значения ( value ? <Slider1 /> : <Slider2 /> ), но в какой-то степени это сработало. Thumb всегда был установлен в начало ползунка, независимо от значения.

Есть идеи? Спасибо.

Примеры кода см. в разделе material ui slider API.

Ответ №1:

Возможно, используя withStyles(), импортируйте withStyles и ползунок:

 import { withStyles } from "@material-ui/core/styles";
import Slider from "@material-ui/core/Slider";
 

затем настройте свой слайдер, что-то вроде этого:

 export const CustomizedSlider = withStyles({
  thumb: {
    height: 28,
    width: 28,
    backgroundColor: "transparent",
    marginTop: -14,
    marginLeft: -14,
    "amp;:hover, amp;$active": {
      backgroundColor: "red",
    },
  },
})(Slider);
 

Цвет по умолчанию должен быть «прозрачным», и он изменится на «красный» при наведении на него курсора мыши. Подробнее о withStyles() здесь . Надеюсь, это вам поможет !.

ссылка на код: https://github.com/mui-org/material-ui/blob/master/docs/src/pages/components/slider/CustomizedSlider.js