transition-group

 

https://vuejs.org/v2/api/#transition-group
模板1

<template>
  <div>
    <vuedraggable class="left" v-model="list1" group="people" :options="dragOptions">
      <transition-group tag="div">
        <div v-for="item in list1" :key="item" class="item">
          <p>{{ item }}</p>
        </div>
      </transition-group>
    </vuedraggable>

    <vuedraggable class="right" v-model="list2" group="people" :options="dragOptions">
      <transition-group tag="div">
        <div v-for="item in list2" :key="item" class="item">
          <p>{{ item }}</p>
        </div>
      </transition-group>
    </vuedraggable>
  </div>
</template>

<script>
import vuedraggable from "vuedraggable";
export default {
  data() {
    return {
      dragOptions: {
        animation: 120,
        scroll: true,
        group: "sortlist",
        ghostClass: "ghost-style",
      },
      list1: [1, 3, 5, 7, 9],
      list2: [2, 4, 6, 8, 10],
    };
  },
  components: {
    vuedraggable,
  },
};
</script>

<style scoped>
.item {
  width: 300px;
  height: 50px;
  background-color: #42b983;
  color: #ffffff;
  margin-top: 10px;
  transform: scale(0.9);
}
.left,
.right {
  display: inline-block;
  width: 40%;
  height: 500px;
  border: 2px solid #333;
}
</style>

  

效果图

 

 

 模板2

<template>
  <draggable
    class="list-group"
    tag="ul"
    v-model="list"
    v-bind="{
      animation: 200,
      group: 'description',
      disabled: false,
      ghostClass: 'ghost',
    }"
  >
    <li class="list-group-item" v-for="element in list" :key="element.order">
      {{ element.name }}
      <!-- {{ element.style }} -->
    </li>
  </draggable>
</template>

<script>
import Draggable from "vuedraggable";

const message = [
  "vue.draggable",
  "draggable",
  "component",
  "for",
  "vue.js 2.0",
  "based",
  "on",
  "Sortablejs",
];

export default {
  components: {
    Draggable,
  },
  data() {
    return {
      list: message.map((name, index) => {
        console.log(name);
        return { name, order: index + 1 };
      }),
    };
  },
};
</script>
<style lang="scss">
.ghost {
  opacity: 0.5;
  background: #c8ebfb;
}
.list-group {
  min-height: 20px;
  list-style: none;
}
.list-group-item {
  cursor: move;
  height: 30px;
  line-height: 30px;
  border: 1px solid #ccc;
}
</style>

  

效果图

 

posted @ 2021-05-14 14:13  DaisyLinux  阅读(523)  评论(0编辑  收藏  举报