可排序 Vue 组件
可排序不是一个单独的组件,只是 <f7-list> 和 <f7-list-item> 组件特殊用例。
可排序事件
事件 | 描述 |
---|---|
<f7-list> 事件 当 sortable 属性启用时,将可以利用 <f7-list> 中的下列事件 | |
sortable:enable | 当可排序模式启用时触发事件 |
sortable:disable | 当可排序模式禁用时触发事件 |
sortable:sort | 当用户释放当前在新的位置排序的元素后触发事件。第一个处理程序参数包含一个对象,其中包含 from 、to 和 el 属性,具有已排序列表项的起始/新索引号以及已排序列表项的 HTML 元素 |
sortable:move | 排列期间每个列表项移动时都会触发事件 |
示例
sortable.vue
<template>
<f7-page>
<f7-navbar title="Sortable List">
<f7-nav-right>
<f7-link sortable-toggle=".sortable">Toggle</f7-link>
</f7-nav-right>
</f7-navbar>
<f7-block>
<p>Just click "Toggle" button on navigation bar to enable/disable sorting</p>
</f7-block>
<f7-list strong-ios outline-ios dividers-ios sortable>
<f7-list-item title="1 Jenna Smith" after="CEO">
<template #media>
<f7-icon icon="icon-f7" />
</template>
</f7-list-item>
<f7-list-item title="2 John Doe" after="Director">
<template #media>
<f7-icon icon="icon-f7" />
</template>
</f7-list-item>
<f7-list-item title="3 John Doe" after="Developer">
<template #media>
<f7-icon icon="icon-f7" />
</template>
</f7-list-item>
<f7-list-item title="4 Aaron Darling" after="Manager">
<template #media>
<f7-icon icon="icon-f7" />
</template>
</f7-list-item>
<f7-list-item title="5 Calvin Johnson" after="Accounter">
<template #media>
<f7-icon icon="icon-f7" />
</template>
</f7-list-item>
<f7-list-item title="6 John Smith" after="SEO">
<template #media>
<f7-icon icon="icon-f7" />
</template>
</f7-list-item>
<f7-list-item title="7 Chloe" after="Manager">
<template #media>
<f7-icon icon="icon-f7" />
</template>
</f7-list-item>
</f7-list>
<f7-list strong-ios outline-ios dividers-ios media-list sortable>
<f7-list-item
title="Yellow Submarine"
after="$15"
subtitle="Beatles"
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."
>
<template #media>
<img src="https://cdn.framework7.io/placeholder/people-160x160-1.jpg" width="80" />
</template>
</f7-list-item>
<f7-list-item
title="Don't Stop Me Now"
after="$22"
subtitle="Queen"
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."
>
<template #media>
<img src="https://cdn.framework7.io/placeholder/people-160x160-2.jpg" width="80" />
</template>
</f7-list-item>
<f7-list-item
title="Billie Jean"
after="$16"
subtitle="Michael Jackson"
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."
>
<template #media>
<img src="https://cdn.framework7.io/placeholder/people-160x160-3.jpg" width="80" />
</template>
</f7-list-item>
</f7-list>
<f7-block-title>Opposite Side</f7-block-title>
<f7-list strong-ios outline-ios dividers-ios sortable sortable-opposite>
<f7-list-item title="1 Jenna Smith" after="CEO">
<template #media>
<f7-icon icon="icon-f7" />
</template>
</f7-list-item>
<f7-list-item title="2 John Doe" after="Director">
<template #media>
<f7-icon icon="icon-f7" />
</template>
</f7-list-item>
<f7-list-item title="3 John Doe" after="Developer">
<template #media>
<f7-icon icon="icon-f7" />
</template>
</f7-list-item>
<f7-list-item title="4 Aaron Darling" after="Manager">
<template #media>
<f7-icon icon="icon-f7" />
</template>
</f7-list-item>
<f7-list-item title="5 Calvin Johnson" after="Accounter">
<template #media>
<f7-icon icon="icon-f7" />
</template>
</f7-list-item>
<f7-list-item title="6 John Smith" after="SEO">
<template #media>
<f7-icon icon="icon-f7" />
</template>
</f7-list-item>
<f7-list-item title="7 Chloe" after="Manager">
<template #media>
<f7-icon icon="icon-f7" />
</template>
</f7-list-item>
</f7-list>
</f7-page>
</template>
<script>
import {
f7Navbar,
f7Page,
f7Block,
f7List,
f7ListItem,
f7NavRight,
f7Link,
f7Icon,
f7BlockTitle,
} from 'framework7-vue';
export default {
components: {
f7Navbar,
f7Page,
f7Block,
f7List,
f7ListItem,
f7NavRight,
f7Link,
f7Icon,
f7BlockTitle,
},
};
</script>