Panel React 组件

Panel React 组件表示 侧面板 组件。

面板组件

包含以下组件

面板属性

属性类型默认值描述
side字符串面板侧面。可能是 leftright
left布尔值side="left" 的快捷属性
right布尔值side="right" 的快捷属性
effect字符串面板效果。可以是 coverrevealfloatingpush
cover布尔值effect="cover" 的快捷属性
reveal布尔值effect="reveal" 的快捷属性
push布尔值effect="push" 的快捷属性
floating布尔值effect="floating" 的快捷属性
visibleBreakpoint数字当左侧面板变得始终可见时的最小应用宽度(以 px 为单位)
collapsedBreakpoint数字当左侧面板变得部分可见(折叠)时的最小应用宽度(以 px 为单位)
swipe布尔值false如果你想通过滑动打开/关闭面板,请启用此功能
swipeNoFollow布尔值false在旧/慢设备上可以获得更好的性能的备用选项。如果你启用它,那么在滑动面板期间滑动面板不会跟随你的手指,它会在向左/向右滑动时自动打开/关闭。
swipeActiveArea数字0从屏幕触发面板滑动的不可见边缘的宽度(以 px 为单位)
swipeOnlyClose布尔值false此参数允许通过滑动关闭面板(但不允许打开面板)。(还应启用swipe
swipeThreshold数字0如果“触摸距离”小于此值(以 px 为单位),面板不会随着滑动而移动。
backdrop布尔值true启用面板背景(背后深色半透明层)
backdropElHTMLElement
字符串
HTML 元素或自定义背景元素的字符串 CSS 选择器
closeByBackdropClick布尔值true启用/禁用通过点击面板外部关闭面板的功能
resizable布尔值false启用/禁用可调整大小的面板
containerElHTMLElement
字符串
用于挂载面板的元素(默认为应用根元素)
opened布尔值允许打开/关闭面板并设置其初始状态

面板事件

事件描述
panelOpen当面板开始其打开动画时,将触发事件
panelOpened当面板完成其打开动画时,将触发事件
panelClose当面板开始其关闭动画时,将触发事件
panelClosed当面板完成其关闭动画时,将触发事件
panelBackdropClick点击面板背景时,将触发事件
panelSwipe在触摸滑动操作期间,将为滑动面板触发事件
panelSwipeOpen在用滑动打开它的最开始时,将会触发事件
panelCollapsedBreakpoint当其 collapsedBreakpoint 与应用宽度匹配时,它变得可见/隐藏时触发事件
panelBreakpoint当其 visibleBreakpoint 与应用宽度匹配时,它变得可见/隐藏时触发事件

打开和关闭面板

你可以控制面板状态,打开和关闭它

示例

panel.jsx
import React from 'react';
import { Navbar, Page, Block, Button, Link, Panel } from 'framework7-react';

export default () => (
  <Page id="panel-page">
    <Navbar title="Panel / Side panels"></Navbar>
    <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 className="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>
);