Swipeout Svelte 组件
Swipeout 列表不是一个独立的组件,而只是使用 <List>、<ListItem swipeout> Svelte 组件和额外的 Swipeout 组件的一个特殊情况。
Swipeout Svelte 组件代表 Framework7 的 Swipeout 组件。
Swipeout 组件
以下组件包含在内
SwipeoutActions
- Swipeout 按钮的包装器SwipeoutButton
- 单个 Swipeout 按钮
Swipeout 属性
属性 | 类型 | 默认值 | 描述 |
---|---|---|---|
<SwipeoutActions> 属性 | |||
side | 字符串 | right | Swipeout 操作侧 |
right | 布尔值 | side="right" 属性的快捷方式 | |
left | 布尔值 | side="left" 属性的快捷方式 | |
<SwipeoutButton> 属性 | |||
delete | 布尔值 | false | 单击时会自动删除 Swipeout 列表项 |
close | 布尔值 | false | 单击时会自动关闭 Swipeout 列表项 |
overswipe | 布尔值 | false | 如果您过度滑动操作,则会自动触发单击 - overswipe |
text | 字符串 | Swipeout 按钮的文本标签 | |
confirmText | 字符串 | 此文本将显示在对话框中,用户必须在此同意才能删除项目 | |
confirmTitle | 字符串 | 此文本将显示为对话框标题,用户必须在此同意才能删除项目 |
Swipeout 事件
事件 | 描述 |
---|---|
<SwipeoutButton> 事件 | |
click | 单击 Swipeout 按钮时会触发该事件 |
<ListItem> 事件 以下事件将在启用了 swipeout 的 <ListItem> 上可用 | |
swipeout | 当您移动 Swipeout 元素时会触发该事件。event.detail.progress 包含当前打开的进度百分比 |
swipeoutOpen | 当 Swipeout 元素开始其打开动画时会触发该事件 |
swipeoutOpened | 当 Swipeout 元素完成其打开动画时会触发该事件 |
swipeoutClose | 当 Swipeout 元素开始其关闭动画时会触发该事件 |
swipeoutClosed | 当 Swipeout 元素完成其关闭动画时会触发该事件 |
swipeoutDelete | 当 Swipeout 元素开始其删除动画时会触发该事件 |
swipeoutDeleted | 当 Swipeout 元素完成其删除动画并在从 DOM 中删除之前会触发该事件 |
swipeoutOverswipeEnter | 启用 overswipe 时会触发该事件 |
swipeoutOverswipeExit | 禁用 overswipe 时会触发该事件 |
示例
swipeout.svelte
<script>
import {
f7,
Navbar,
Page,
BlockTitle,
List,
ListItem,
SwipeoutActions,
SwipeoutButton,
Block,
} from 'framework7-svelte';
let actions;
function more() {
actions.open();
}
function mark() {
f7.dialog.alert('Mark');
}
function reply() {
f7.dialog.alert('Reply');
}
function forward() {
f7.dialog.alert('Forward');
}
function onDeleted() {
f7.dialog.alert('Thanks, item removed!');
}
function onPageBeforeRemove() {
actions.destroy();
}
function onPageInit() {
actions = f7.actions.create({
buttons: [
[
{
text: 'Here comes some optional description or warning for actions below',
label: true,
},
{
text: 'Action 1',
},
{
text: 'Action 2',
},
],
[
{
text: 'Cancel',
strong: true,
},
],
],
});
}
</script>
<Page {onPageBeforeRemove} {onPageInit}>
<Navbar title="Swipeout" />
<Block>
<p>
Swipe out actions on list elements is one of the most awesome F7 features. It allows you to
call hidden menu for each list element where you can put default ready-to use delete button or
any other buttons for some required actions.
</p>
</Block>
<BlockTitle>Swipe to delete with confirm modal</BlockTitle>
<List strong insetMd outlineIos dividersIos>
<ListItem swipeout title="Swipe left on me please">
<i slot="media" class="icon icon-f7" />
<SwipeoutActions right>
<SwipeoutButton delete confirmText="Are you sure you want to delete this item?">
Delete
</SwipeoutButton>
</SwipeoutActions>
</ListItem>
<ListItem swipeout title="Swipe left on me too">
<i slot="media" class="icon icon-f7" />
<SwipeoutActions right>
<SwipeoutButton delete confirmText="Are you sure you want to delete this item?">
Delete
</SwipeoutButton>
</SwipeoutActions>
</ListItem>
<ListItem title="I am not removable"><i slot="media" class="icon icon-f7" /></ListItem>
</List>
<BlockTitle>Swipe to delete without confirm</BlockTitle>
<List strong insetMd outlineIos dividersIos>
<ListItem swipeout title="Swipe left on me please">
<i slot="media" class="icon icon-f7" />
<SwipeoutActions right>
<SwipeoutButton delete>Delete</SwipeoutButton>
</SwipeoutActions>
</ListItem>
<ListItem swipeout title="Swipe left on me too">
<i slot="media" class="icon icon-f7" />
<SwipeoutActions right>
<SwipeoutButton delete>Delete</SwipeoutButton>
</SwipeoutActions>
</ListItem>
<ListItem title="I am not removable"><i slot="media" class="icon icon-f7" /></ListItem>
</List>
<BlockTitle>Swipe for actions</BlockTitle>
<List strong insetMd outlineIos dividersIos>
<ListItem swipeout title="Swipe left on me please">
<i slot="media" class="icon icon-f7" />
<SwipeoutActions right>
<SwipeoutButton onClick={more}>More</SwipeoutButton>
<SwipeoutButton delete>Delete</SwipeoutButton>
</SwipeoutActions>
</ListItem>
<ListItem swipeout title="Swipe left on me too">
<i slot="media" class="icon icon-f7" />
<SwipeoutActions right>
<SwipeoutButton onClick={more}>More</SwipeoutButton>
<SwipeoutButton delete>Delete</SwipeoutButton>
</SwipeoutActions>
</ListItem>
<ListItem swipeout title="You can't delete me">
<i slot="media" class="icon icon-f7" />
<SwipeoutActions right>
<SwipeoutButton onClick={more}>More</SwipeoutButton>
</SwipeoutActions>
</ListItem>
</List>
<BlockTitle>With callback on remove</BlockTitle>
<List strong insetMd outlineIos dividersIos>
<ListItem swipeout onSwipeoutDeleted={onDeleted} title="Swipe left on me please">
<i slot="media" class="icon icon-f7" />
<SwipeoutActions right>
<SwipeoutButton delete>Delete</SwipeoutButton>
</SwipeoutActions>
</ListItem>
<ListItem swipeout onSwipeoutDeleted={onDeleted} title="Swipe left on me too">
<i slot="media" class="icon icon-f7" />
<SwipeoutActions right>
<SwipeoutButton delete>Delete</SwipeoutButton>
</SwipeoutActions>
</ListItem>
<ListItem title="I am not removable"><i slot="media" class="icon icon-f7" /></ListItem>
</List>
<BlockTitle>With actions on left side (swipe to right)</BlockTitle>
<List strong insetMd outlineIos dividersIos>
<ListItem swipeout title="Swipe right on me please">
<i slot="media" class="icon icon-f7" />
<SwipeoutActions left>
<SwipeoutButton color="green" onClick={reply}>Reply</SwipeoutButton>
<SwipeoutButton color="blue" onClick={forward}>Forward</SwipeoutButton>
</SwipeoutActions>
</ListItem>
<ListItem swipeout title="Swipe right on me too">
<i slot="media" class="icon icon-f7" />
<SwipeoutActions left>
<SwipeoutButton color="green" onClick={reply}>Reply</SwipeoutButton>
<SwipeoutButton color="blue" onClick={forward}>Forward</SwipeoutButton>
</SwipeoutActions>
</ListItem>
</List>
<BlockTitle>On both sides with overswipes</BlockTitle>
<List mediaList strong insetMd outlineIos dividersIos>
<ListItem
swipeout
title="Facebook"
after="17:14"
subtitle="New messages from John Doe"
text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla sagittis tellus ut turpis condimentum, ut dignissim lacus tincidunt. Cras dolor metus, ultrices condimentum sodales sit amet, pharetra sodales eros. Phasellus vel felis tellus. Mauris rutrum ligula nec dapibus feugiat. In vel dui laoreet, commodo augue id, pulvinar lacus."
>
<SwipeoutActions left>
<SwipeoutButton overswipe color="green" onClick={reply}>Reply</SwipeoutButton>
<SwipeoutButton color="blue" onClick={forward}>Forward</SwipeoutButton>
</SwipeoutActions>
<SwipeoutActions right>
<SwipeoutButton onClick={more}>More</SwipeoutButton>
<SwipeoutButton color="orange" onClick={mark}>Mark</SwipeoutButton>
<SwipeoutButton delete overswipe confirmText="Are you sure you want to delete this item?">
Delete
</SwipeoutButton>
</SwipeoutActions>
</ListItem>
<ListItem
swipeout
title="John Doe (via Twitter)"
after="17:11"
subtitle="John Doe (@_johndoe) mentioned you on Twitter!"
text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla sagittis tellus ut turpis condimentum, ut dignissim lacus tincidunt. Cras dolor metus, ultrices condimentum sodales sit amet, pharetra sodales eros. Phasellus vel felis tellus. Mauris rutrum ligula nec dapibus feugiat. In vel dui laoreet, commodo augue id, pulvinar lacus."
>
<SwipeoutActions left>
<SwipeoutButton overswipe color="green" onClick={reply}>Reply</SwipeoutButton>
<SwipeoutButton color="blue" onClick={forward}>Forward</SwipeoutButton>
</SwipeoutActions>
<SwipeoutActions right>
<SwipeoutButton onClick={more}>More</SwipeoutButton>
<SwipeoutButton color="orange" onClick={mark}>Mark</SwipeoutButton>
<SwipeoutButton delete overswipe confirmText="Are you sure you want to delete this item?">
Delete
</SwipeoutButton>
</SwipeoutActions>
</ListItem>
<ListItem
swipeout
title="Facebook"
after="16:48"
subtitle="New messages from John Doe"
text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla sagittis tellus ut turpis condimentum, ut dignissim lacus tincidunt. Cras dolor metus, ultrices condimentum sodales sit amet, pharetra sodales eros. Phasellus vel felis tellus. Mauris rutrum ligula nec dapibus feugiat. In vel dui laoreet, commodo augue id, pulvinar lacus."
>
<SwipeoutActions left>
<SwipeoutButton overswipe color="green" onClick={reply}>Reply</SwipeoutButton>
<SwipeoutButton color="blue" onClick={forward}>Forward</SwipeoutButton>
</SwipeoutActions>
<SwipeoutActions right>
<SwipeoutButton onClick={more}>More</SwipeoutButton>
<SwipeoutButton color="orange" onClick={mark}>Mark</SwipeoutButton>
<SwipeoutButton delete overswipe confirmText="Are you sure you want to delete this item?">
Delete
</SwipeoutButton>
</SwipeoutActions>
</ListItem>
<ListItem
swipeout
title="John Doe (via Twitter)"
after="15:32"
subtitle="John Doe (@_johndoe) mentioned you on Twitter!"
text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla sagittis tellus ut turpis condimentum, ut dignissim lacus tincidunt. Cras dolor metus, ultrices condimentum sodales sit amet, pharetra sodales eros. Phasellus vel felis tellus. Mauris rutrum ligula nec dapibus feugiat. In vel dui laoreet, commodo augue id, pulvinar lacus."
>
<SwipeoutActions left>
<SwipeoutButton overswipe color="green" onClick={reply}>Reply</SwipeoutButton>
<SwipeoutButton color="blue" onClick={forward}>Forward</SwipeoutButton>
</SwipeoutActions>
<SwipeoutActions right>
<SwipeoutButton onClick={more}>More</SwipeoutButton>
<SwipeoutButton color="orange" onClick={mark}>Mark</SwipeoutButton>
<SwipeoutButton delete overswipe confirmText="Are you sure you want to delete this item?">
Delete
</SwipeoutButton>
</SwipeoutActions>
</ListItem>
</List>
</Page>