我们正在尝试滚动到lapply
中的特定mtcars[strsplit(as.character(df_col_names$col_names[1]), ",")[[1]]]
项目。问题是<mat-expansion-panel>
在手风琴及其面板完全加载之前被触发。这意味着<mat-accordion>
函数在手风琴加载时被调用,页面大小随后发生变化,从而使我们的滚动操作将我们带到错误的页面位置。
我们还尝试了其他生命周期挂钩,但没有帮助,因为它们都被称为早期。有人对此问题有好的做法吗?
我们的资料很简单,因为我们试图实现一些非常基本的东西:
landingpage.component.html
ngAfterViewInit()
landingpage.component.ts
scrollIntoView()
答案 0 :(得分:2)
这里是StackBlitz上使用Angular Material 7的示例。您的技术效果很好,但是您需要注意以下几点-确保页面足够长,以便可以放置面板在页面顶部,并确保您不会拼写错误的面板ID。
答案 1 :(得分:1)
在我的示例中,我单击某些东西,它打开了一个侧面导航,该屏幕占据了一半的屏幕,因此在单击功能上,我具有以下逻辑:
if ($event) {
setTimeout(() => $event.target.scrollIntoView({behavior: 'smooth', block: 'end'}), 1);
}
因此,在您的示例中,您可以绑定到afterExpand
事件(在mat-expansion-panel上)并运行逻辑。