侧边栏 Svelte 组件
侧边栏 Svelte 组件代表 侧边面板 组件。
侧边栏 组件
包含以下组件:
Panel
- 侧边栏 元素
侧边栏 属性
属性 | 类型 | 默认值 | 描述 |
---|---|---|---|
side | 字符串 | 侧边栏 侧边。可以是 left 或 right | |
left | 布尔值 | side="left" 的快捷属性 | |
right | 布尔值 | side="right" 的快捷属性 | |
effect | 字符串 | 侧边栏 效果。可以是 cover 、reveal 或 push | |
cover | 布尔值 | effect="cover" 的快捷属性 | |
reveal | 布尔值 | effect="reveal" 的快捷属性 | |
push | 布尔值 | effect="push" 的快捷属性 | |
floating | 布尔值 | effect="floating" 的快捷属性 | |
visibleBreakpoint | 数字 | 左侧侧边栏始终可见时的最小应用宽度(以像素为单位) | |
collapsedBreakpoint | 数字 | 左侧侧边栏部分可见(折叠)时的最小应用宽度(以像素为单位) | |
swipe | 布尔值 | false | 如果您想启用通过滑动打开/关闭侧边栏的功能,请启用它。 |
swipeNoFollow | 布尔值 | false | 用于在旧的/速度慢的设备上获得更好性能的备用选项。如果启用它,则滑动侧边栏在触摸移动过程中不会跟随您的手指,它将在向左/向右滑动时自动打开/关闭。 |
swipeActiveArea | 数字 | 0 | 触发侧边栏滑动的屏幕边缘不可见宽度(以像素为单位) |
swipeOnlyClose | 布尔值 | false | 此参数允许通过滑动关闭(而不是打开)侧边栏。(swipe 也应该启用) |
swipeThreshold | 数字 | 0 | 如果“触摸距离”小于此值(以像素为单位),侧边栏将不会随着滑动而移动。 |
backdrop | 布尔值 | true | 启用侧边栏背景(侧边栏后面的半透明暗层) |
backdropEl | HTML 元素 字符串 | 自定义背景元素的 HTML 元素或字符串 CSS 选择器 | |
closeByBackdropClick | 布尔值 | true | 启用/禁用通过单击侧边栏外部关闭侧边栏的功能 |
resizable | 布尔值 | false | 启用/禁用可调整大小的侧边栏 |
containerEl | HTML 元素 字符串 | 将侧边栏安装到的元素(默认为应用根元素) | |
opened | 布尔值 | 允许打开/关闭侧边栏并设置其初始状态 |
侧边栏 事件
事件 | 描述 |
---|---|
panelOpen | 当侧边栏开始其打开动画时,将触发事件。 |
panelOpened | 侧边栏完成其打开动画后,将触发事件。 |
panelClose | 当侧边栏开始其关闭动画时,将触发事件。 |
panelClosed | 侧边栏完成其关闭动画后,将触发事件。 |
panelBackdropClick | 单击侧边栏背景时,将触发事件。 |
panelSwipe | 在触摸滑动操作期间,将为滑动侧边栏触发事件。 |
panelSwipeOpen | 在用滑动打开它的开始阶段,将触发事件。 |
panelCollapsedBreakpoint | 当应用宽度与其 collapsedBreakpoint 相匹配时,它将变为可见/隐藏时,将触发事件。 |
panelBreakpoint | 当应用宽度与其 visibleBreakpoint 相匹配时,它将变为可见/隐藏时,将触发事件。 |
打开和关闭侧边栏
您可以控制侧边栏状态,打开和关闭它
访问侧边栏实例
您可以通过调用 .instance()
组件的方法来访问已初始化的侧边栏实例。例如
<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>