照片浏览器 Svelte 组件
照片浏览器是一个照片浏览器组件,用于显示照片 / 图像集合。照片可以缩放和平移(可选)。
照片浏览器 Svelte 组件代表 Framework7 的 照片浏览器 组件。
照片浏览器 Svelte 组件不渲染任何输出。它可用于创建 JS 照片浏览器实例并在您的 Svelte 组件中对其进行控制。
照片浏览器组件
以下组件包括在内
PhotoBrowser
照片浏览器属性
您可以在单个 params
属性中传递所有参数,或者为每个参数使用单独的 props 通过组件属性指定它们
属性 | 类型 | 默认值 | 描述 |
---|---|---|---|
<PhotoBrowser> 属性 | |||
init | 布尔值 | true | 初始化照片浏览器 |
params | 对象 | 具有 照片浏览器参数 的对象 | |
photos | 数组 | [] | 包含照片 URL 的数组或包含 "url"(或 "html")和 "caption" 属性的对象数组。 |
thumbs | 数组 | [] | 包含缩略图图像 URL 的数组。如果未指定或为空数组,则不会渲染缩略图 |
url | 字符串 | photos/ | 将设置为当前路由的照片浏览器模态 URL |
routableModals | 布尔值 | false | 将打开的照片浏览器添加到路由历史记录,这使您能够通过在路由历史记录中返回来关闭照片浏览器并将当前路由设置为照片浏览器模态 |
swiper | 对象 | 包含 Swiper 参数的对象。默认情况下等于
| |
virtualSlides | 布尔值 | true | 启用后,Swiper 将使用虚拟幻灯片 |
closeByBackdropClick | 布尔值 | true | 启用后,照片浏览器弹出窗口将在背景点击时关闭 |
exposition | 布尔值 | true | 在点击照片浏览器时启用或禁用曝光模式。 |
expositionHideCaptions | 布尔值 | false | 设置为 true,如果您还想在曝光模式下隐藏标题 |
swipeToClose | 布尔值 | true | 启用此参数后,您可以通过向上/向下滑动关闭照片浏览器 |
type | 字符串 | standalone | 定义照片浏览器应如何打开。可以是 standalone (将以覆盖层打开,并具有自定义过渡效果)、popup (将以弹出窗口打开)、page (将注入视图并作为新页面加载)。 |
theme | 字符串 | light | 照片浏览器颜色主题,可以是 light 或 dark |
captionsTheme | 字符串 | 标题颜色主题,也可以是 dark 或 light 。默认情况下,等于 "theme" 参数 | |
navbar | 布尔值 | true | 设置为 false 以移除照片浏览器的导航栏 |
toolbar | 布尔值 | true | 设置为 false 以移除照片浏览器的工具栏 |
pageBackLinkText | 字符串 | 返回 | 照片浏览器导航栏中返回链接上的文本 |
popupCloseLinkText | 字符串 | 关闭 | 在弹出窗口或独立打开时,照片浏览器导航栏中关闭链接上的文本 |
navbarShowCount | 布尔值 | 未定义 | 定义是否在导航栏标题中显示 "3 of 5" 文本。如果未指定(未定义),则将在有多于 1 个项目时显示此文本 |
navbarOfText | 字符串 | of | 照片计数器中 "of" 的文本:"3 of 5" |
iconsColor | 字符串 | 其中一种 默认颜色 |
照片浏览器事件
事件 | 描述 |
---|---|
<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>