面板 Svelte 组件
面板 Svelte 组件表示侧面板组件。
面板组件
包含以下组件:
Panel- 面板元素
面板属性
| 属性 | 类型 | 默认 | 描述 |
|---|---|---|---|
| 侧 | 字符串 | 面板侧。可以是left或right | |
| 左 | 布尔值 | 快捷属性用于side="left" | |
| 右 | 布尔值 | 快捷属性用于side="right" | |
| 效果 | 字符串 | 面板效果。可以是cover, reveal或push | |
| 覆盖 | 布尔值 | 快捷属性用于effect="cover" | |
| 揭示 | 布尔值 | 快捷属性用于effect="reveal" | |
| push | 布尔值 | 快捷属性用于effect="push" | |
| 漂浮 | 布尔值 | 快捷属性用于effect="floating" | |
| visibleBreakpoint | 数字 | 最小应用宽度(以像素为单位),当左侧面板始终可见时 | |
| collapsedBreakpoint | 数字 | 最小应用宽度(以像素为单位),当左侧面板部分可见(折叠)时 | |
| 滑动 | 布尔值 | false | 如果你想启用用滑动打开/关闭面板的功能,请启用此选项 |
| swipeNoFollow | 布尔值 | false | 对于旧设备/慢设备可能更好的性能的回退选项。如果你启用它,那么在触摸移动时,滑动面板将不会跟随你的手指,它将在滑动左右时自动打开/关闭。 |
| swipeActiveArea | 数字 | 0 | 触屏屏幕上触发面板滑动的不可见边缘宽度(以像素为单位) |
| swipeOnlyClose | 布尔值 | false | 此参数允许用滑动关闭(但不能打开)面板。(应该也启用)swipe应该也启用 |
| swipeThreshold | 数字 | 0 | 如果“触摸距离”小于此值(以像素为单位),面板将不会随着滑动而移动。 |
| 背景遮罩 | 布尔值 | true | 启用面板背景(背后的深色半透明层) |
| backdropEl | HTMLElement 字符串 | 自定义背景元素的HTML元素或字符串CSS选择器 | |
| closeByBackdropClick | 布尔值 | true | 启用/禁用通过点击面板外部关闭面板的能力 |
| resizable | 布尔值 | false | 启用/禁用可调整大小的面板 |
| containerEl | HTMLElement 字符串 | 面板挂载元素(默认为应用根元素) | |
| opened | 布尔值 | 允许打开/关闭面板并设置其初始状态 |
面板事件
| 事件 | 描述 |
|---|---|
| panelOpen | 当面板开始其打开动画时将触发事件 |
| panelOpened | 当面板完成其打开动画后触发事件 |
| panelClose | 当面板开始其关闭动画时触发事件 |
| panelClosed | 当面板完成其关闭动画后触发事件 |
| panelBackdropClick | 当面板背景被点击时触发事件 |
| panelSwipe | 在触摸滑动操作期间为滑动面板触发事件 |
| panelSwipeOpen | 在用滑动打开它的最开始时触发事件 |
| panelCollapsedBreakpoint | 当应用宽度与其匹配时,它将变得可见/隐藏时触发事件collapsedBreakpoint |
| panelBreakpoint | 当应用宽度与其匹配时,它将变得可见/隐藏时触发事件visibleBreakpoint |
打开和关闭面板
你可以控制面板状态,打开和关闭它:
访问面板实例
你可以通过调用.instance()组件的方法来访问初始化的Sheet Modal实例。例如:
<Panel bind:this={component}>...</Panel>
<script>
let component;
// to get instance in some method
component.instance()
</script>
示例
panel.svelte
<script>
import { Navbar, Page, Block, Button, Panel, Link } from 'framework7-svelte';
</script>
<Page id="panel-page">
<Navbar title="Panel / Side panels" />
<Panel left cover containerEl="#panel-page" id="panel-nested">
<Page>
<Block strongIos outlineIos>
<p>This is page-nested Panel.</p>
<p>
<Link panelClose>Close me</Link>
</p>
</Block>
</Page>
</Panel>
<Block strongIos outlineIos>
<p>
Framework7 comes with 2 panels (on left and on right), both are optional. You can put
absolutely anything inside: data lists, forms, custom content, and even other isolated app
view (like in right panel now) with its own dynamic navbar.
</p>
</Block>
<Block strongIos outlineIos>
<p class="grid grid-cols-2 grid-gap">
<Button raised fill panelOpen="left">Open left panel</Button>
<Button raised fill panelOpen="right">Open right panel</Button>
</p>
<p>
<Button raised fill panelOpen="#panel-nested">Open nested panel</Button>
</p>
</Block>
</Page>