滚动到页面顶部 - livewire 组件 - alpine js

Posted

技术标签:

【中文标题】滚动到页面顶部 - livewire 组件 - alpine js【英文标题】:scroll to top of page - livewire component - alpine js 【发布时间】:2021-05-13 19:31:53 【问题描述】:

我有一个使用 laravel livewire 创建的应用程序,我正在加载一个带有多个嵌套组件的 livewire 组件,这些组件一次显示一个,具体取决于状态变量。当显示每个嵌套组件时,页面将滚动到底部。我希望默认滚动到顶部。在我尝试过的嵌套组件的顶部:

x-data x-init="window.scrollTo(0, 0)"

我还尝试在隐藏组件 1 和显示组件 2 之前使用单击事件将页面滚动到顶部。这是为了确保在显示组件 2 之前页面滚动到顶部。

x-data x-on:click.document="window.scrollTo(0, 0)"

这两种方法都行不通。提前致谢。

【问题讨论】:

【参考方案1】:

我意识到我需要滚动的不是窗口,而是窗口内的<div>。因此,使用解决方案 2,在单击按钮以显示下一个组件(并隐藏当前组件)之后,我滚动到 div 的顶部。当下一个组件显示时,包含的 div 滚动到顶部。

我仍然宁愿不需要实现此解决方法,但不确定在显示下一个组件时如何防止 div 滚动到底部。

【讨论】:

以上是关于滚动到页面顶部 - livewire 组件 - alpine js的主要内容,如果未能解决你的问题,请参考以下文章

原生js实现简洁的返回顶部组件

Vue3返回顶部组件及返回顶部js封装

使用 JavaScript 滚动到页面顶部?

Laravel 8 livewire 在任务完成或在其外部单击页面时隐藏菜单组件

Android ScrollView在滚动中调用scrollTo(0,0)回到顶部无效

当滚动页面到一定程度时,页顶菜单浮动固定在页面顶部