如何在 Svelte 中执行 window.scrollTo(0,0)
How to do window.scrollTo(0,0) in Svelte
我正在使用 svelte 和 svelte-routing 创建一个网站,并在用户浏览时尝试滚动到页面顶部。在 React window.scrollTo(0, 0) 等其他框架中工作得很好。不幸的是,在 Svelte 中,以下代码什么也没做:
import { onMount } from "svelte";
onMount(() => window.scrollTo(0,0));
那么使这项工作成功的诀窍是什么?
您还可以使用 svelte window bind (API doc):
绑定到 window 属性,例如 scrollX 和 scrollY
<svelte:window bind:scrollY={y}/>
现在您可以阅读 en set the y 属性。
参见 this Svelte docs REPL。
好的,这个错误不是一个小问题。问题出在 html 样式上。似乎 html 的溢出要设置为自动工作,而不是!在 body 上。任何 body 也遇到此错误的人可以查看此 thread。
从 npm 安装 Svelte-scrollto 包。它有助于滚动动画。
npm i svelte-scrollto
然后在您的 svelte 文件中
<script>
import * as animateScroll from "svelte-scrollto";
</script>
<a on:click={() => animateScroll.scrollToBottom()}> Scroll to bottom </a>
<a on:click={() => animateScroll.scrollToTop()}> Scroll to top </a>
我正在使用 svelte 和 svelte-routing 创建一个网站,并在用户浏览时尝试滚动到页面顶部。在 React window.scrollTo(0, 0) 等其他框架中工作得很好。不幸的是,在 Svelte 中,以下代码什么也没做:
import { onMount } from "svelte";
onMount(() => window.scrollTo(0,0));
那么使这项工作成功的诀窍是什么?
您还可以使用 svelte window bind (API doc):
绑定到 window 属性,例如 scrollX 和 scrollY<svelte:window bind:scrollY={y}/>
现在您可以阅读 en set the y 属性。 参见 this Svelte docs REPL。
好的,这个错误不是一个小问题。问题出在 html 样式上。似乎 html 的溢出要设置为自动工作,而不是!在 body 上。任何 body 也遇到此错误的人可以查看此 thread。
从 npm 安装 Svelte-scrollto 包。它有助于滚动动画。
npm i svelte-scrollto
然后在您的 svelte 文件中
<script>
import * as animateScroll from "svelte-scrollto";
</script>
<a on:click={() => animateScroll.scrollToBottom()}> Scroll to bottom </a>
<a on:click={() => animateScroll.scrollToTop()}> Scroll to top </a>