Page 页面

为移动端的页面提供飞入飞出的效果。

注:iOS 返回时,使用了系统默认的滑动效果。因无法区分是点击按钮返回还是手势返回,点击按钮时是无动画效果的。

示例

基础用法

<script lang="ts">
  import { tick } from 'svelte'

  let page = $state<HTMLElement>()

  // 页面快照
  export const snapshot = {
    // 进入下一页前,记录当前页面状态
    capture() {
      return {
        scrollTop: page?.scrollTop,
      }
    },
    // 返回此页时,恢复页面状态
    async restore(value: any) {
      // 先恢复所有影响页面 scrollHeight 的状态

      // 使用 tick 应用已恢复的状态
      await tick()

      // 再恢复 scrollTop
      if (page) page.scrollTop = value.scrollTop
    },
  }
</script>

<Page bind:page>
  <p>...</p>
</Page>

Page

属性

属性 说明 类型 默认值
duration 页面飞入飞出的时间(毫秒) number 150
page 页面的 DOM 元素 HTMLElement 只读

注:page 属性通常用于页面切换时,使用 snapshot 暂存与回复 scrollTop