欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

vue使用drag与drop实现拖拽的示例代码

程序员文章站 2022-04-28 23:48:31
在功能中有一项是需要实现拖拽的。虽然最终项目没有采取这样的拖拽方式,但是,当初也是费了九牛二虎之力完成了这个功能。增加了对函数的更深理解。下面就再重现一下代码。 下面是代...

在功能中有一项是需要实现拖拽的。虽然最终项目没有采取这样的拖拽方式,但是,当初也是费了九牛二虎之力完成了这个功能。增加了对函数的更深理解。下面就再重现一下代码。

下面是代码片段:

<div 
class="fav-fold-panel" 
v-if="!typechange" 
draggable="true" @dragstart="drag($event)"

@dragover="allowdrop($event)">

<!-- 面板内容 -->

<div 
class="favtitle-card" :data="favpanelalldata"
v-if="folddone">

<favpanel
v-for="item
in favpanelalldata"
v-if="item.id===1" :favtitle="item.title"

renametext="更名"
foldtext="折叠"

unfoldtext="展开" :favlistdata="item.content"
draggable="true" @dragstart="drag($event)">

<ul 
class="ul-content">

<li 
class="ul-content-li" :favcommonlist1="item.content"></li>

</ul>

<!-- <favpoppanel :show="popshow" @onhide="popshow = false"></favpoppanel> -->

<!-- <div :favlistdata="item.favlistdata"></div> -->

</favpanel>

</div>


<div
class="fav-card-create" :data="favpanelalldata">

<favfooter>

<el-button
type="primary" @click="addfoldfuc">新建文件夹</el-button>

<el-button-group>

<el-button @click="foldfuc">全部折叠</el-button>

<el-button @click="foldfuc">全部展开</el-button>

</el-button-group>

</favfooter>

</div>

</div>

另一段代码:

<div 
class="favtitle-card" :data="favpanelalldata"
draggable="true"
ondragstart="drag(event)">

<favpanel
v-for="item
in favpanelalldata"
v-if="item.id===2" :favtitle="item.title"

renametext="更名"
foldtext="没我"
unfoldtext="没你" :favlistdata="item.content">

<ul 
class="ul-content">

<li 
class="ul-content-li" :favlistdata="item.content" :if="!folddone"></li>

</ul>

</favpanel>

</div>

function部分

drag(event) {

dom = event.currenttarget

},

drop(event) {

event.preventdefault()

event.target.appendchild(dom)

},


allowdrop(event) {

event.preventdefault()

}

然后,drag与drop系统的研究明天再说。

这样写的坏处是什么,还有为什么不采取这种方法实现拖拽。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。