可排序的 Svelte 組件

可排序不是一個獨立的組件,而只是使用 <List><ListItem> 組件的特殊情況。

可排序事件

事件說明
<List> 事件
sortable 屬性啟用時,以下事件將出現在 <List> 上
sortableEnable當可排序模式啟用時觸發事件
sortableDisable當可排序模式停用時觸發事件
sortableSort當使用者在新的位置釋放目前排序的元素後觸發事件。第一個處理函式引數包含一個物件,其中包含 `from`、`to` 和 `el` 屬性,這些屬性分別有已排序清單項目開始/新的索引號碼和已排序清單項目的 HTML 元素
sortableMove在排序期間每個清單項目移動時觸發事件

範例

sortable.svelte
<script>
  import {
    Navbar,
    Page,
    Block,
    List,
    ListItem,
    NavRight,
    Link,
    BlockTitle,
  } from 'framework7-svelte';
</script>

<!-- svelte-ignore a11y-missing-attribute -->
<Page>
  <Navbar title="Sortable List">
    <NavRight>
      <Link sortableToggle=".sortable">Toggle</Link>
    </NavRight>
  </Navbar>

  <Block>
    <p>Just click "Toggle" button on navigation bar to enable/disable sorting</p>
  </Block>
  <List strongIos outlineIos dividersIos sortable>
    <ListItem title="1 Jenna Smith" after="CEO">
      <i class="icon icon-f7" slot="media" />
    </ListItem>
    <ListItem title="2 John Doe" after="Director">
      <i class="icon icon-f7" slot="media" />
    </ListItem>
    <ListItem title="3 John Doe" after="Developer">
      <i class="icon icon-f7" slot="media" />
    </ListItem>
    <ListItem title="4 Aaron Darling" after="Manager">
      <i class="icon icon-f7" slot="media" />
    </ListItem>
    <ListItem title="5 Calvin Johnson" after="Accounter">
      <i class="icon icon-f7" slot="media" />
    </ListItem>
    <ListItem title="6 John Smith" after="SEO">
      <i class="icon icon-f7" slot="media" />
    </ListItem>
    <ListItem title="7 Chloe" after="Manager">
      <i class="icon icon-f7" slot="media" />
    </ListItem>
  </List>
  <List strongIos outlineIos dividersIos mediaList sortable>
    <ListItem
      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."
    >
      <img
        slot="media"
        src="https://cdn.framework7.io/placeholder/people-160x160-1.jpg"
        width="80"
      />
    </ListItem>
    <ListItem
      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."
    >
      <img
        slot="media"
        src="https://cdn.framework7.io/placeholder/people-160x160-2.jpg"
        width="80"
      />
    </ListItem>
    <ListItem
      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."
    >
      <img
        slot="media"
        src="https://cdn.framework7.io/placeholder/people-160x160-3.jpg"
        width="80"
      />
    </ListItem>
  </List>

  <BlockTitle>Opposite Side</BlockTitle>
  <List strongIos outlineIos dividersIos sortable sortableOpposite>
    <ListItem title="1 Jenna Smith" after="CEO">
      <i class="icon icon-f7" slot="media" />
    </ListItem>
    <ListItem title="2 John Doe" after="Director">
      <i class="icon icon-f7" slot="media" />
    </ListItem>
    <ListItem title="3 John Doe" after="Developer">
      <i class="icon icon-f7" slot="media" />
    </ListItem>
    <ListItem title="4 Aaron Darling" after="Manager">
      <i class="icon icon-f7" slot="media" />
    </ListItem>
    <ListItem title="5 Calvin Johnson" after="Accounter">
      <i class="icon icon-f7" slot="media" />
    </ListItem>
    <ListItem title="6 John Smith" after="SEO">
      <i class="icon icon-f7" slot="media" />
    </ListItem>
    <ListItem title="7 Chloe" after="Manager">
      <i class="icon icon-f7" slot="media" />
    </ListItem>
  </List>
</Page>