material-ui 使用弹出窗口显示值标签

euoag5mw  于 3个月前  发布在  其他
关注(0)|答案(3)|浏览(44)

重复问题

  • 我搜索了现有的问题

最新版本

  • 我测试了最新版本

总结 💡

滑块的值标签可能会渲染在滑块组件本身的区域之外。这可能会导致滚动条出现,标签被切断等。
滑块是否可以使用Popper来渲染其值标签,无论是始终还是作为选项?

示例 🌈

查看 https://codesandbox.io/s/mui-slider-popper-zlglcj 以了解当前滑块的限制以及使用Popper与滑块的原型/演示。

动机 🔦

  • 无响应*
mcvgt66p

mcvgt66p1#

这是一个好主意。然而,由于Popper.js(我们Popper组件背后的库)不再维护,我更愿意使用我们目前正在开发的新Popup组件( #37960 )。尽管如此,最终结果应该大致相同。

carvr3hs

carvr3hs2#

同时,在没有简单解决方案的情况下,也遇到了很多解决这个问题的困难。

unguejic

unguejic3#

同时,在尝试解决这个问题时遇到了很多困难,没有简单的解决方案可用。
目前已经解决了容器左侧/右侧标签被切断的问题,通过以下自定义CSS实现(之所以有效,是因为我的标签宽度对于所有值都是一致的)。

<Slider
    size='small'
    color='secondary'
    marks={dateMarks}
    min={minDateValue}
    max={maxDateValue}
    step={60 * 60 * 24}
    valueLabelDisplay={'auto'}
    valueLabelFormat={(value) => moment.unix(value).format('DD/MM/YYYY')}
    value={dateValue}
    onChange={(e, value) => {updateDateValue(value)}}
    sx={{
        marginLeft: 1,
        marginRight: 1,
        width: 'calc(100% - 16px)',
        '& .MuiSlider-markLabel': {
            color: 'primary.contrastText',
            fontSize: '0.75rem'
        },
        '&.MuiSlider-root .MuiSlider-thumb[data-index="0"] .MuiSlider-valueLabel': {
            marginLeft: '66px',
            '&::before': {
                left: '12px'
            }
        },
        '&.MuiSlider-root .MuiSlider-thumb[data-index="1"] .MuiSlider-valueLabel': {
            marginRight: '66px',
            '&::before': {
                left: 'calc(100% - 12px)'
            }
        }
    }}
/>

这导致了以下结果:
之前:

之后:

这对任何遇到这个问题的人来说可能都很有用。

相关问题