0

我目前正在做一个网站构建器,用户可以在其中拖放以添加元素。

拖放效果很好,但我想要的是,如何禁用/隐藏目标容器中的放置占位符?

在此处输入图像描述

如图所示,每当我将鼠标悬停在容器上时,默认情况下它会显示我的拖动元素的副本,这是我不想要的。

这是我的代码:

<template>
<div style="display : flex;">
    <div id="dragArea">
        <draggable
            class="dragArea list-group"
            :list="list1"
            :group="{ name: 'item', pull: 'clone', put: false }"
            :clone="cloneItem"
            @change="log"
        >
            <div class="list-group-item" v-for="element in list1" :key="element.id">{{ element.name }}</div>
        </draggable>
    </div>

    <div id="dropArea">
        <draggable class="dragArea list-group" :list="list2" group="item" @change="log">
            <div class="list-group-item" v-for="element in list2" :key="element.id">{{ element.name }}</div>
        </draggable>
    </div>
</div>
</template>

脚本 :

<script>
import draggable from "vuedraggable";
let idGlobal = 8;

export default {
    name: "custom-clone",
    display: "Custom Clone",
    order: 3,
    components: {
        draggable,
    },
    data() {
        return {
            hover : false,
            list1: [
                { name: "cloned 1", id: 1 },
                { name: "cloned 2", id: 2 },
            ],
            list2: [

            ]
        };
    },
    methods: {
        log: function(evt) {
            window.console.log(evt);
        },
        cloneItem({ name, id }) {
            return {
                id: idGlobal++,
                name: name
            };
        },
    },
};
</script>
4

1 回答 1

4

<draggable><template>的. ghost-class_ display: none;_visibility: hidden;

例如:

  • 在你的<template>

     <draggable ghost-class="hidden-ghost">
    
  • <style>你的 Vue Single File Component 部分,或者在相应的样式表中:

     .hidden-ghost {
         display: none;
     }
    

工作小提琴

ghost-class道具在内部设置了 SortableJSghostClass选项(请参阅此处的所有选项)。从 Vue.Draggable v2.19.1开始,可以将这些 SortableJS 选项修改为 Vue.Draggable道具

于 2020-12-11T21:35:10.883 回答