Saltearse al contenido

Insert on list

Esta página aún no está disponible en tu idioma.

List of number example

To showing how to use Vue Fluid DnD for inserting elements to a list. First, we’re going to create a list and extract the insertAt function from useDragAndDrop:

<script setup lang="ts">
import { ref } from "vue";
import { useDragAndDrop } from "vue-fluid-dnd";
const list = ref([]);
const { parent, insertAt } = useDragAndDrop(list);
});
</script>

Creating the view

After, we’ll create the list with an add button that call insertAt:

<template>
<ul ref="parent" class="number-list">
<li class="number" v-for="(element, index) in list" :index="index" :key="element">
{{ element }}
</li>
</ul>
<button class="insert-button" @click="insertAt(list.length, list.length)">+</button>
</template>

Preview

Add inserting Class

You can add the css class setted when an element is inserted using the parameter insertingFromClass:

<script setup lang="ts">
// ...
const { parent, removeAt } = useDragAndDrop(list,{
insertingFromClass: "inserting"
});
</script>

Changing styles

After, we’ll add the inserting styles and transition when the class is setted:

<style scoped>
.number{
/*
...
*/
opacity: 1;
transition: opacity 200ms ease;
}
.number.inserting{
opacity: 0;
}
</style>

Preview

Add delay before insert

You can add the amount of delay time in miliseconds before inserting the element (the default is 200 miliseconds):

<script setup lang="ts">
// ...
const { parent, removeAt } = useDragAndDrop(list,{
insertingFromClass: "inserting",
delayBeforeInsert: 800
});});
</script>

Preview