面板 Vue 组件

面板 Vue 组件表示 侧面板 组件。

面板组件

以下是包含的组件

面板属性

属性类型默认说明
side字符串面板侧边。可能是leftright
left布尔值side="left" 的快捷属性
right布尔值side="right" 的快捷属性
effect字符串面板效果。可以是 coverrevealpush
cover布尔值effect="cover" 的快捷属性
reveal布尔值effect="reveal" 的快捷属性
push布尔值effect="push" 的快捷属性
floating布尔值effect="floating" 的快捷道具
visible-breakpoint数字左面板始终可见的最小应用宽度(以像素为单位)
collapsed-breakpoint数字左面板部分可见(折叠)的最小应用宽度(以像素为单位)
swipe布尔值false如果您希望通过滑动打开/关闭面板,请启用此选项
swipe-no-follow布尔值false在老式/慢速设备上可能提供更好的性能的备用选项。如果您启用此选项,那么滑动面板在触控移动期间将不会跟随您的手指,它将在向左/向右滑动时自动打开/关闭。
swipe-active-area数字0触发面板滑动的屏幕的不可见边缘的宽度(以像素为单位)
swipe-only-close布尔值false此参数允许通过滑动关闭(但不能打开)面板。(swipe 也应该已启用)
swipe-threshold数字0如果“触控距离”小于此值(以像素为单位),面板将不会随滑动而移动。
backdrop布尔值true启用面板背景(背后的半透明暗色图层)
backdrop-elHTMLElement
字符串
自定义背景元素的 HTML 元素或字符串 CSS 选择器
close-by-backdrop-click布尔值true启用/禁用通过点击面板外部来关闭面板的选项
resizable布尔值false启用/禁用可调整大小的面板
container-elHTMLElement
字符串
供面板安装到的元素(默认为应用根元素)
opened布尔值允许打开/关闭面板并设置其初始状态

Panel 事件

事件说明
panel:open当面板开始其打开动画时将触发事件
panel:opened当面板完成其打开动画后将触发事件
panel:close当面板开始其关闭动画时将触发事件
panel:closed当面板完成其关闭动画后将触发事件
panel:backdrop-click当点击面板背景时将触发事件
panel:swipe在触控滑动操作期间,将为滑动面板触发事件
panel:swipeopen在开始通过滑动打开它的那一刻触发事件
panel:collapsedbreakpoint当应用宽度与其 collapsedBreakpoint 匹配时,它变得可见/隐藏时触发事件
panel:breakpoint当应用宽度与其 visibleBreakpoint 匹配时,它变得可见/隐藏时触发事件

Panel v-model

Panel 组件支持打开 opened prop 上的 v-model

<template>
  <f7-page>
    <f7-panel v-model:opened="isOpened">
      ...
    </f7-panel>
    <p>Panel is opened: {{ isOpened }}</p>
  </f7-page>
</template>
<script>
  export default {
    data() {
      return {
        isOpened: false,
      };
    }
  };
</script>

打开和关闭面板

您可以控制面板状态、打开和关闭它

示例

panel.vue
<template>
  <f7-page id="panel-page">
    <f7-navbar title="Panel / Side panels"></f7-navbar>
    <f7-panel id="panel-nested" left cover container-el="#panel-page">
      <f7-page>
        <f7-block strong-ios outline-ios>
          <p>This is page-nested Panel.</p>
          <p>
            <f7-link panel-close>Close me</f7-link>
          </p>
        </f7-block>
      </f7-page>
    </f7-panel>
    <f7-block strong-ios outline-ios>
      <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>
    </f7-block>
    <f7-block strong-ios outline-ios>
      <p class="grid grid-cols-2 grid-gap">
        <f7-button raised fill panel-open="left"> Open left panel </f7-button>
        <f7-button raised fill panel-open="right"> Open right panel </f7-button>
      </p>
      <p>
        <f7-button raised fill panel-open="#panel-nested"> Open nested panel </f7-button>
      </p>
    </f7-block>
  </f7-page>
</template>
<script>
import { f7Navbar, f7Page, f7Block, f7Button, f7Link, f7Panel } from 'framework7-vue';

export default {
  components: {
    f7Navbar,
    f7Page,
    f7Block,
    f7Button,
    f7Link,
    f7Panel,
  },
};
</script>