angular - 在对话框中使用 mat-expansion-panel 会导致滚动到页面底部
问题描述
当显示一个包含 a 的对话框(带有 dialog.open)时<mat-expansion-panel>
,我发现浏览器会将这个面板滚动到视图中,如果它位于页面底部的话。
在 Chrome 和 IE 中似乎都是一个问题。我试过设置expanded="false"
无济于事。
请参阅此 stackblitz 中的示例
https://angular-efsxjw.stackblitz.io
在示例中,当您单击“单击”时,页面将滚动到扩展面板(尽管没有打开对话框,我认为这是一个 stackblitz 问题)
EDIT:
似乎<mat-expansion-panel-header>
是导致问题的原因。我在页面顶部添加了一个隐藏的 mat-expansion-panel-header 以获取焦点。
解决方案
这不是错误。这是可以被覆盖的期望行为。该对话框有一个焦点陷阱,可以自动聚焦第一个可聚焦元素。
要覆盖它,您只需添加{ autoFocus: false }
到对话框的 open 调用。
dialog.open(MyDialogComponent, { autoFocus: false });
StackBlitz 显示了问题和解决方案: https ://stackblitz.com/edit/angular-ivy-uk31wr
推荐阅读
- python - 解析 .txt 文件并在 python 中写入 excel
- javascript - 如何在 Vue.js 和 WordPress 中使用多个过滤器进行分页(或延迟加载无限滚动)
- c++ - ANTLR4 在某台机器上找不到任何令牌,但在我的具有相同输入文件的情况下工作正常
- odata - NavigationProperty 的简单选择下拉菜单
- php - 在 ASP.NET 表单中调用 PHP 脚本
- php - Keycloak 密码策略
- tensorflow - 在 Keras 中跨两个并行层的反向传播
- angular - 未调用 Spied 函数
- html - tinymce 版本 5:html 中的 z-index:-1 不起作用
- laravel - Laravel:在api上传递两个参数时找不到页面