フォトブラウザ Svelte コンポーネント
フォトブラウザは、写真/画像のコレクションを表示するためのフォトブラウザコンポーネントです。写真はズームとパン(オプション)が可能です。
フォトブラウザ Svelte コンポーネントは、Framework7 のフォトブラウザコンポーネントを表します。
フォトブラウザ Svelte コンポーネントは、出力をレンダリングしません。JS フォトブラウザインスタンスを作成し、Svelte コンポーネント内で制御するために使用できます。
フォトブラウザコンポーネント
以下のコンポーネントが含まれています
PhotoBrowser
フォトブラウザのプロパティ
すべてのパラメータを単一の `params` プロパティに渡すか、コンポーネントのプロパティを介して指定するために、各パラメータに個別のプロパティを使用できます
プロパティ | タイプ | デフォルト | 説明 |
---|---|---|---|
<PhotoBrowser> プロパティ | |||
init | boolean | true | フォトブラウザを初期化します |
params | Object | フォトブラウザパラメータを持つオブジェクト | |
photos | array | [] | 写真の URL の配列、または "url"(または "html")と "caption" プロパティを持つオブジェクトの配列。 |
thumbs | array | [] | サムネイル画像のURLの配列。指定しない場合、または空の配列の場合はサムネイルをレンダリングしません |
url | string | photos/ | 現在のルートとして設定されるフォトブラウザモーダルのURL |
routableModals | boolean | false | 開いたフォトブラウザをルーター履歴に追加します。これにより、ルーター履歴を戻ることによってフォトブラウザを閉じ、現在のルートをフォトブラウザモーダルに設定できます |
swiper | object | Swiper パラメータを持つオブジェクト。デフォルトでは以下と同じです
| |
virtualSlides | boolean | true | 有効にすると、Swiper はバーチャルスライドを使用します |
closeByBackdropClick | boolean | true | 有効にすると、フォトブラウザのポップアップは背景クリックで閉じられます |
exposition | boolean | true | フォトブラウザをクリックしたときのエクスポジションモードを有効/無効にします。 |
expositionHideCaptions | boolean | false | エクスポジションモードでキャプションも非表示にする場合は、true に設定します |
swipeToClose | boolean | true | このパラメータが有効になっている場合、スワイプアップ/ダウンでフォトブラウザを閉じることができます |
type | string | standalone | フォトブラウザを開く方法を定義します。 `standalone`(カスタムトランジションエフェクトでオーバーレイとして開かれる)、`popup`(ポップアップとして開かれる)、`page`(View に挿入され、新しいページとしてロードされる)のいずれかになります。 |
theme | string | light | フォトブラウザのカラースキーム。 `light` または `dark` を指定できます |
captionsTheme | string | キャプションのカラースキーム。 `dark` または `light` も指定できます。デフォルトでは、 "theme" パラメータと同じです | |
navbar | boolean | true | false に設定すると、フォトブラウザのナビゲーションバーが削除されます |
toolbar | boolean | true | false に設定すると、フォトブラウザのツールバーが削除されます |
pageBackLinkText | string | 戻る | フォトブラウザのナビゲーションバーの戻るリンクのテキスト |
popupCloseLinkText | string | 閉じる | ポップアップまたはスタンドアロンで開いたときに、フォトブラウザのナビゲーションバーの閉じるリンクのテキスト |
navbarShowCount | boolean | undefined | ナビゲーションバーのタイトルに "3 of 5" のようなテキストを表示するかどうかを定義します。指定しない場合(undefined)、アイテムが2つ以上ある場合はこのテキストが表示されます |
navbarOfText | string | of | 写真カウンターの "of" のテキスト: "3 of 5" |
iconsColor | string | デフォルトカラーのいずれか |
フォトブラウザのイベント
イベント | 説明 |
---|---|
<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>