パネル・Svelte・コンポーネント

    Panel Svelteコンポーネントは、Side Panelsコンポーネントを表します。

    パネルコンポーネント

    以下のコンポーネントが含まれています。

    • Panel - Panel 要素

    パネルのプロパティ

    PropTypeDefaultDescription
    sidestringパネルのサイド。left または right` になります。
    leftbooleanside="left"` のショートカットプロップです。
    rightbooleanside="right"` のショートカット・プロップです。
    effectstringパネルの効果。cover, reveal, push` のいずれかです。
    coverbooleaneffect="cover"`のショートカットプロップです。
    revealbooleaneffect="reveal"`のショートカットプロップです。
    pushbooleanEFFECT="PUSH"`のショートカットプロップ
    visibleBreakpointnumber左パネルが常に表示されるようになったときのアプリの最小幅(px単位
    collapsedBreakpointnumber左パネルが部分的に表示される(折りたたまれる)場合のアプリの最小幅(px
    swipebooleanfalseスワイプでパネルを開閉する機能を有効にする場合は、Enableを選択します。
    swipeNoFollowbooleanfalse古いデバイスや遅いデバイスでのパフォーマンスを向上させる可能性のあるフォールバックオプションです。このオプションを有効にすると、タッチ操作時にスワイプパネルが指に追従せず、左右のスワイプで自動的に開閉されるようになります。
    swipeActiveAreanumber0パネルのスワイプを誘発するスクリーンからの見えないエッジの幅(px)
    swipeOnlyClosebooleanfalseこのパラメータは、スワイプでパネルを閉じる(開かない)ことができます。(swipe も有効にしてください)
    swipeThresholdnumber0touch distance" がこの値 (px) よりも小さい場合、パネルはスワイプでは動きません。
    backdropbooleantrueパネルの背景を有効にします (背後にある暗い半透明のレイヤー)
    backdropElHTMLElement
    string
    カスタム背景要素の HTML 要素または文字列 CSS セレクタ
    closeByBackdropClickbooleantrueパネルの外側をクリックしてパネルを閉じる機能の有効化/無効化
    resizablebooleanfalseサイズ変更可能なパネルの有効化/無効化
    containerElHTMLElement
    string
    パネルをマウントする要素(デフォルトはアプリのルート要素
    openedbooleanパネルの開閉や初期状態の設定を可能にする

    パネルのイベント

    EventDescription
    panelOpenパネルがオープニングアニメーションを開始するとイベントが発生します。
    panelOpenedパネルのオープニングアニメーションが完了すると、イベントが発生します。
    panelCloseパネルが閉じるアニメーションを開始すると、イベントが発生します。
    panelClosedパネルが閉じるアニメーションが完了すると、イベントが発生します。
    panelBackdropClickパネルの背景がクリックされるとイベントが発生します。
    panelSwipeスワイプパネルの場合、タッチのスワイプ動作時にイベントが発生する
    panelSwipeOpenイベントはスワイプでパネルを開いた最初の段階で発生します。
    panelCollapsedBreakpointイベントは、アプリの幅が collapsedBreakpoint と一致したときに表示/非表示になるとトリガーされます。
    panelBreakpointイベントは、アプリの幅が visibleBreakpoint と一致したときに、表示/非表示になるとトリガーされます。

    パネルの開閉

    パネルの状態を制御して、開いたり閉じたりすることができます。

    • Panel APIを使用します。
    • パネルの opened プロパティーに true または false を渡します。
    • パネルを開くにはリンク、閉じるにはボタンpanelOpen プロパティを指定してクリックします。

    Panel インスタンスへのアクセス

    .instance()`コンポーネントのメソッドを呼び出すことで、Panelの初期化されたインスタンスにアクセスすることができます。例えば、以下のようになります。

    <Panel bind:this={component}>...</Panel>
    
    <script>
      let component;
    
      // あるメソッドでインスタンスを取得する
      component.instance()
    </script>
    

    Examples

    <App>
      <Panel resizable left reveal>
        <View>
          <Page>
            <Block>Left panel content</Block>
          </Page>
        </View>
      </Panel>
      <Panel resizable right themeDark>
        <View>
          <Page>
            <Block>Right panel content</Block>
          </Page>
        </View>
      </Panel>
      <View main>
        <Page>
          <Navbar title="Panel"></Navbar>
    
          <Panel left cover themeDark containerEl="#panel-page" id="panel-nested">
            <Page>
              <Block strong>
                <p>This is page-nested Panel.</p>
                <p>
                  <Link panelClose>Close me</Link>
                </p>
              </Block>
            </Page>
          </Panel>
    
          <Block>
            <Row tag="p">
              <Col tag="span">
                <Button raised fill panelOpen="left">
                  Open left panel
                </Button>
              </Col>
              <Col tag="span">
                <Button raised fill panelOpen="right">
                  Open right panel
                </Button>
              </Col>
            </Row>
            <Row tag="p">
              <Col tag="span">
                <Button raised fill panelOpen="#panel-nested">
                  Open nested panel
                </Button>
              </Col>
            </Row>
          </Block>
        </Page>
      </View>
    </App>
    <style>
      /* Limit resizable panel width */
      :global(.panel) {
        min-width: 100px;
        max-width: 90vw;
      }
    </style>
    <script>
      import {App, Panel, View, Page, Block, Navbar, Col, Button, Row, Link} from 'framework7-svelte';
    </script>