vue implements the drag and drop sorting function of the div box on the page. Foreword: There are many plug-ins and methods on the market that implement the drag and drop sorting function. This section will not go into details, but only talk about one method: the transition-group method of css3 Effect picture: 1. Use in DOM: <transition-group class="container" name="sort"> <div class="app-item" v-for="app in customApps" :key="app.id" :draggable="true" @dragstart="dragstart(app)" @dragenter="dragenter(app,$event)" @dragend="getDragend(customApps, 'customer', $event)"> <div> <img class="icon_a" v-if="app.logo" :src="app.logo" > <div class="ellipsis" >{{app.name}}</div> </div> </div> </transition-group> 2. Define data in data import { APi } from '@/api/enterpriseAPi' <script> export default { data() { return { oldData: [], newData: [], customApps: [], dragStartId: '', dragEndId: '' } } } </script> 3. Use in methods dragstart(value) { this.oldData = value this.dragStartId = value.id }, dragenter(value) { this.newData = value this.dragEndId = value.id }, getDragend(listData, type) { if (this.oldData !== this.newData) { let oldIndex = listData.indexOf(this.oldData) let newIndex = listData.indexOf(this.newData) let newItems = [...listData] // Delete the previous DOM node newItems.splice(oldIndex, 1) // Add a new DOM node at the end of the drag target newItems.splice(newIndex, 0, this.oldData) // After each drag is completed, the data processed by the drag is assigned to the original array, the DOM view is updated, and the page displays the drag animation this.customApps = newItems // Call the interface to save data every time the drag ends Api(this.dragStartId, this.dragEndId).then((res) => {}) } }, Drag completion animation style: <style lang="scss" scoped> .sort-move { transition: transform 1s; } </style> This is the end of this article about how to use vue to implement the drag and sort function of div boxes on the page. For more related vue div box drag and sort content, please search for previous articles on 123WORDPRESS.COM or continue to browse the related articles below. I hope you will support 123WORDPRESS.COM in the future! You may also be interested in:
|
<<: Comprehensive analysis of optimistic locking, pessimistic locking and MVCC in MySQL
>>: How to use domestic image warehouse for Docker
Every time I design a web page or a form, I am tr...
What is a generator? A generator is some code tha...
It is very convenient to connect to a remote serv...
This is a large drop-down menu implemented purely...
Table of contents 1. Introduction to label statem...
This article shares the specific code for the WeC...
This article shares the specific code of JS to ac...
Preface As Linux operation and maintenance engine...
1. Explanation of provide and inject Provide and ...
Preface Sometimes you come across business tables...
Recently, new projects have used springcloud and ...
DOCTYPE DECLARATION At the top of every page you w...
Encryption and decryption are an important means ...
Original data and target data Implement SQL state...
1. When ffmpeg pushes video files, the encoding f...