You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何阻止MUI X Date Picker关闭时屏幕跳转?

解决MUI X Date Picker关闭时自动滚动到输入框的问题

问题场景:打开MUI X Date Picker后,滚动页面让选择器完全移出屏幕视野,点击外部关闭选择器时,屏幕会自动滚动回输入框的初始位置,不符合“关闭时无滚动跳转”的需求。

问题根源

关闭选择器时,Popper组件默认会将焦点恢复到触发它的输入框,而浏览器会自动将聚焦元素滚动到视口中,这就是导致屏幕跳转的原因。

解决方案

通过配置DatePicker的Popper属性,禁用关闭时的焦点恢复行为即可解决。具体代码如下:

import { DatePicker } from '@mui/x-date-pickers/DatePicker';

// 示例配置
<DatePicker
  label="Date desktop"
  slotProps={{
    popper: {
      shouldRestoreFocus: false
    }
  }}
  // 你的其他配置项(如value、onChange等)
/>

如果使用的是MUI X旧版本(v5.x早期),可能需要通过PopperProps直接传递:

<DatePicker
  label="Date desktop"
  PopperProps={{
    shouldRestoreFocus: false
  }}
  // 你的其他配置项
/>

原理说明

将shouldRestoreFocus设置为false后,Popper在关闭时不会再将焦点返还给输入框,浏览器也就不会触发自动滚动到输入框的行为,从而实现关闭选择器时屏幕无跳转的效果。

内容的提问来源于stack exchange,提问作者Jonathan Segal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 10:55:18