フォトブラウザ Svelte コンポーネント

フォトブラウザは、写真/画像のコレクションを表示するためのフォトブラウザコンポーネントです。写真はズームとパン(オプション)が可能です。

フォトブラウザ Svelte コンポーネントは、Framework7 のフォトブラウザコンポーネントを表します。

フォトブラウザ Svelte コンポーネントは、出力をレンダリングしません。JS フォトブラウザインスタンスを作成し、Svelte コンポーネント内で制御するために使用できます。

フォトブラウザコンポーネント

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

フォトブラウザのプロパティ

すべてのパラメータを単一の `params` プロパティに渡すか、コンポーネントのプロパティを介して指定するために、各パラメータに個別のプロパティを使用できます

プロパティタイプデフォルト説明
<PhotoBrowser> プロパティ
initbooleantrueフォトブラウザを初期化します
paramsObjectフォトブラウザパラメータを持つオブジェクト
photosarray[]写真の URL の配列、または "url"(または "html")と "caption" プロパティを持つオブジェクトの配列。
thumbsarray[]サムネイル画像のURLの配列。指定しない場合、または空の配列の場合はサムネイルをレンダリングしません
urlstringphotos/現在のルートとして設定されるフォトブラウザモーダルのURL
routableModalsbooleanfalse開いたフォトブラウザをルーター履歴に追加します。これにより、ルーター履歴を戻ることによってフォトブラウザを閉じ、現在のルートをフォトブラウザモーダルに設定できます
swiperobjectSwiper パラメータを持つオブジェクト。デフォルトでは以下と同じです
swiper: {
  initialSlide: 0,
  spaceBetween: 20,
  speed: 300,
  loop: false,
  preloadImages: true,
  keyboard: {
    enabled: true,
  },
  navigation: {
    nextEl: '.photo-browser-next',
    prevEl: '.photo-browser-prev',
  },
  zoom: {
    enabled: true,
    maxRatio: 3,
    minRatio: 1,
  },
  lazy: {
    enabled: true,
  },
},
virtualSlidesbooleantrue有効にすると、Swiper はバーチャルスライドを使用します
closeByBackdropClickbooleantrue有効にすると、フォトブラウザのポップアップは背景クリックで閉じられます
expositionbooleantrueフォトブラウザをクリックしたときのエクスポジションモードを有効/無効にします。
expositionHideCaptionsbooleanfalseエクスポジションモードでキャプションも非表示にする場合は、true に設定します
swipeToClosebooleantrueこのパラメータが有効になっている場合、スワイプアップ/ダウンでフォトブラウザを閉じることができます
typestringstandaloneフォトブラウザを開く方法を定義します。 `standalone`(カスタムトランジションエフェクトでオーバーレイとして開かれる)、`popup`(ポップアップとして開かれる)、`page`(View に挿入され、新しいページとしてロードされる)のいずれかになります。
themestringlightフォトブラウザのカラースキーム。 `light` または `dark` を指定できます
captionsThemestringキャプションのカラースキーム。 `dark` または `light` も指定できます。デフォルトでは、 "theme" パラメータと同じです
navbarbooleantruefalse に設定すると、フォトブラウザのナビゲーションバーが削除されます
toolbarbooleantruefalse に設定すると、フォトブラウザのツールバーが削除されます
pageBackLinkTextstring戻るフォトブラウザのナビゲーションバーの戻るリンクのテキスト
popupCloseLinkTextstring閉じるポップアップまたはスタンドアロンで開いたときに、フォトブラウザのナビゲーションバーの閉じるリンクのテキスト
navbarShowCountbooleanundefinedナビゲーションバーのタイトルに "3 of 5" のようなテキストを表示するかどうかを定義します。指定しない場合(undefined)、アイテムが2つ以上ある場合はこのテキストが表示されます
navbarOfTextstringof写真カウンターの "of" のテキスト: "3 of 5"
iconsColorstringデフォルトカラーのいずれか

フォトブラウザのイベント

イベント説明
<PhotoBrowser> イベント
photoBrowserOpenフォトブラウザが開いたときにイベントがトリガーされます。
photoBrowserOpenedフォトブラウザが開くアニメーションが完了した後にイベントがトリガーされます
photoBrowserCloseフォトブラウザが閉じるときにイベントがトリガーされます。
photoBrowserClosedフォトブラウザが閉じるアニメーションが完了した後にイベントがトリガーされます
photoBrowserSwipeToCloseユーザーがスワイプアップ/ダウンでフォトブラウザを閉じたときに、このイベントがトリガーされます。

フォトブラウザのメソッド

以下のフォトブラウザコンポーネントメソッドが利用可能です(例: **bind:this** でアクセスすることにより)

<PhotoBrowser> メソッド
.open(index)インデックス番号が "index" パラメータと等しい写真でフォトブラウザを開きます。 "index" パラメータが指定されていない場合は、最後に閉じた写真で開かれます。
.close()フォトブラウザを閉じます
.expositionToggle()エクスポジションモードを切り替えます
.expositionEnable()エクスポジションモードを有効にします
.expositionDisable()エクスポジションモードを無効にします

フォトブラウザインスタンスへのアクセス

コンポーネントの `。instance()`メソッドを呼び出すことによって、初期化されたフォトブラウザインスタンスにアクセスできます。例えば

<PhotoBrowser bind:this={component}>...</PhotoBrowser>

<script>
  let component;

  // to get instance in some method
  component.instance()
</script>

photo-browser.svelte
<script>
  import { Navbar, Page, PhotoBrowser, Block, Button } from 'framework7-svelte';

  let standalone;
  let popup;
  let page;

  let standaloneDark;
  let popupDark;
  let pageDark;

  const photos = [
    {
      url: 'img/beach.jpg',
      caption: 'Amazing beach in Goa, India',
    },
    'http://placekitten.com/1024/1024',
    'img/lock.jpg',
    {
      url: 'img/monkey.jpg',
      caption: 'I met this monkey in Chinese mountains',
    },
    {
      url: 'img/mountains.jpg',
      caption: 'Beautiful mountains in Zhangjiajie, China',
    },
  ];

  const thumbs = [
    'img/beach.jpg',
    'http://placekitten.com/1024/1024',
    'img/lock.jpg',
    'img/monkey.jpg',
    'img/mountains.jpg',
  ];
</script>

<Page>
  <Navbar title="Photo Browser" />
  <Block strongIos outlineIos>
    <p>
      Photo Browser is a standalone and highly configurable component that allows to open window
      with photo viewer and navigation elements with the following features:
    </p>
    <ul>
      <li>Swiper between photos</li>
      <li>Multi-gestures support for zooming</li>
      <li>Toggle zoom by double tap on photo</li>
      <li>Single click on photo to toggle Exposition mode</li>
    </ul>
  </Block>
  <Block strongIos outlineIos>
    <p>
      Photo Browser could be opened in a three ways - as a Standalone component (Popup
      modification), in Popup, and as separate Page:
    </p>
    <div class="grid grid-cols-3 grid-gap">
      <div>
        <PhotoBrowser {photos} {thumbs} bind:this={standalone} />
        <Button fill onClick={() => standalone.open()}>Standalone</Button>
      </div>
      <div>
        <PhotoBrowser {photos} {thumbs} type="popup" bind:this={popup} />
        <Button fill onClick={() => popup.open()}>Popup</Button>
      </div>
      <div>
        <PhotoBrowser {photos} {thumbs} type="page" pageBackLinkText="Back" bind:this={page} />
        <Button fill onClick={() => page.open()}>Page</Button>
      </div>
    </div>
  </Block>
  <Block strongIos outlineIos>
    <p>
      Photo Browser supports 2 default themes - default Light (like in previous examples) and Dark
      theme. Here is a Dark theme examples:
    </p>
    <div class="grid grid-cols-3 grid-gap">
      <div>
        <PhotoBrowser {photos} {thumbs} theme="dark" bind:this={standaloneDark} />
        <Button fill onClick={() => standaloneDark.open()}>Standalone</Button>
      </div>
      <div>
        <PhotoBrowser {photos} {thumbs} theme="dark" type="popup" bind:this={popupDark} />
        <Button fill onClick={() => popupDark.open()}>Popup</Button>
      </div>
      <div>
        <PhotoBrowser
          {photos}
          {thumbs}
          theme="dark"
          type="page"
          pageBackLinkText="Back"
          bind:this={pageDark}
        />
        <Button fill onClick={() => pageDark.open()}>Page</Button>
      </div>
    </div>
  </Block>
</Page>