最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

VUE使用draggable實現(xiàn)組件拖拽

 更新時間:2022年04月06日 09:55:46   作者:三流人才  
這篇文章主要為大家詳細介紹了VUE使用draggable實現(xiàn)組件拖拽,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了draggable組件拖拽實例,供大家參考,具體內(nèi)容如下

實現(xiàn)步驟

1、導入draggable依賴

npm i -S vuedraggable

2、引入draggable

import draggable from "vuedraggable"

3、注冊draggable

components: {
? ? ?draggable
? },

4、使用draggable

html頁面 

<div class="col-md-3">
? ? ? <draggable
? ? ? ? class="list-group"
? ? ? ? tag="ul"
? ? ? ? :list="this.list"
? ? ? ? v-bind="dragOptions"
? ? ? ? :move="onMove"
? ? ? ? @start="isDragging = true"
? ? ? ? @end="isDragging = false"
? ? ? >
? ? ? ? <div
? ? ? ? ? class="list-group-item"
? ? ? ? ? v-for="(item, index) in this.list"
? ? ? ? ? :key="item.value"
? ? ? ? >
? ? ? ? ? <span class="badge">{{ index }}</span>
? ? ? ? ? <span class="lefttitle">
? ? ? ? ? ? {{ item.name }}
? ? ? ? ? </span>
? ? ? ? </div>
? ? ? </draggable>
</div>

定義屬性和list 

data() {
? ? return {
? ? ? list: [
? ? ? ? {
? ? ? ? ? name: "-姓名",
? ? ? ? ? value: "name",
? ? ? ? },
? ? ? ? {
? ? ? ? ? name: "-性別",
? ? ? ? ? value: "sex",
? ? ? ? },
? ? ? ? {
? ? ? ? ? name: "-年齡",
? ? ? ? ? value: "age",
? ? ? ? },
? ? ? ? {
? ? ? ? ? name: "-地址",
? ? ? ? ? value: "address",
? ? ? ? },
? ? ? ? {
? ? ? ? ? name: "-郵箱",
? ? ? ? ? value: "mailbox",
? ? ? ? },
? ? ? ],
? ? ? editable: true, //決定是否可拖動,為false則組件不可拖動
? ? ? isDragging: false,
? ? };
? },

定義移動方法

methods: {
?
? ? onMove({ relatedContext, draggedContext }) {
? ? ? const relatedElement = relatedContext.element;
? ? ? const draggedElement = draggedContext.element;
? ? ? return (
? ? ? ? (!relatedElement || !relatedElement.fixed) && !draggedElement.fixed
? ? ? );
? ? },
? },

5、完整VUE代碼

<template>
? <div class="fluid container">
? ? <div class="form-group form-group-lg panel panel-default">
? ? ? <div class="panel-heading">
? ? ? ? <h3 class="panel-title">組件拖拽實例</h3>
? ? ? </div>
? ? ? <div class="panel-body">
? ? ? ? <div class="checkbox">
? ? ? ? ? <label
? ? ? ? ? ? ><input type="checkbox" v-model="editable" />設置組件可拖拽</label
? ? ? ? ? >
? ? ? ? </div>
? ? ? </div>
? ? </div>
?
? ? <div class="col-md-3">
? ? ? <draggable
? ? ? ? class="list-group"
? ? ? ? tag="ul"
? ? ? ? :list="this.list"
? ? ? ? v-bind="dragOptions"
? ? ? ? :move="onMove"
? ? ? ? @start="isDragging = true"
? ? ? ? @end="isDragging = false"
? ? ? >
? ? ? ? <div
? ? ? ? ? class="list-group-item"
? ? ? ? ? v-for="(item, index) in this.list"
? ? ? ? ? :key="item.value"
? ? ? ? >
? ? ? ? ? <span class="badge">{{ index }}</span>
? ? ? ? ? <span class="lefttitle">
? ? ? ? ? ? {{ item.name }}
? ? ? ? ? </span>
? ? ? ? </div>
? ? ? </draggable>
? ? </div>
?
? ? <div class="list-group col-md-3">
? ? ? <pre>{{ listString }}</pre>
? ? </div>
? </div>
</template>
?
<script>
import draggable from "vuedraggable";
export default {
? components: {
? ? draggable,
? },
? data() {
? ? return {
? ? ? list: [
? ? ? ? {
? ? ? ? ? name: "-姓名",
? ? ? ? ? value: "name",
? ? ? ? },
? ? ? ? {
? ? ? ? ? name: "-性別",
? ? ? ? ? value: "sex",
? ? ? ? },
? ? ? ? {
? ? ? ? ? name: "-年齡",
? ? ? ? ? value: "age",
? ? ? ? },
? ? ? ? {
? ? ? ? ? name: "-地址",
? ? ? ? ? value: "address",
? ? ? ? },
? ? ? ? {
? ? ? ? ? name: "-郵箱",
? ? ? ? ? value: "mailbox",
? ? ? ? },
? ? ? ],
? ? ? list2: [],
? ? ? editable: true, //決定是否可拖動,為false則組件不可拖動
? ? ? isDragging: false,
? ? ? delayedDragging: false,
? ? };
? },
? methods: {
?
? ? onMove({ relatedContext, draggedContext }) {
? ? ? const relatedElement = relatedContext.element;
? ? ? const draggedElement = draggedContext.element;
? ? ? return (
? ? ? ? (!relatedElement || !relatedElement.fixed) && !draggedElement.fixed
? ? ? );
? ? },
? },
? computed: {
? ? dragOptions() {
? ? ? return {
? ? ? ? animation: 0,
? ? ? ? group: "description",
? ? ? ? disabled: !this.editable,
? ? ? ? ghostClass: "ghost",
? ? ? };
? ? },
? ? listString() {
? ? ? return JSON.stringify(this.list, null, 2);
? ? },
? },
? watch: {
? ? isDragging(newValue) {
? ? ? if (newValue) {
? ? ? ? this.delayedDragging = true;
? ? ? ? return;
? ? ? }
? ? ? this.$nextTick(() => {
? ? ? ? this.delayedDragging = false;
? ? ? });
? ? },
? },
};
</script>
?
<style>
.flip-list-move {
? transition: transform 0.5s;
}
.no-move {
? transition: transform 0s;
}
.ghost {
? opacity: 0.5;
? background: #c8ebfb;
}
.list-group {
? min-height: 20px;
}
.list-group-item {
? cursor: move;
}
.list-group-item i {
? cursor: pointer;
}
</style>

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • vue框架中props的typescript用法詳解

    vue框架中props的typescript用法詳解

    typescript 為 javaScript的超集,這意味著它支持所有都JavaScript都語法。這篇文章主要介紹了vue框架中props的typescript用法,需要的朋友可以參考下
    2020-02-02
  • 使用vue3重構(gòu)拼圖游戲的實現(xiàn)示例

    使用vue3重構(gòu)拼圖游戲的實現(xiàn)示例

    這篇文章主要介紹了使用vue3重構(gòu)拼圖游戲的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • el-table 選擇框根據(jù)條件設置某項不可選中的操作代碼

    el-table 選擇框根據(jù)條件設置某項不可選中的操作代碼

    這篇文章主要介紹了el-table 選擇框根據(jù)條件設置某項不可選中的操作代碼,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2024-03-03
  • vue 地圖可視化 maptalks 篇實例代碼詳解

    vue 地圖可視化 maptalks 篇實例代碼詳解

    這篇文章主要介紹了vue 地圖可視化 maptalks 篇,本文分步驟通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值 ,需要的朋友可以參考下
    2019-05-05
  • vue.js動畫中的js鉤子函數(shù)的實現(xiàn)

    vue.js動畫中的js鉤子函數(shù)的實現(xiàn)

    這篇文章主要介紹了vue.js動畫中的js鉤子函數(shù)的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • vue.js如何在網(wǎng)頁中實現(xiàn)一個金屬拋光質(zhì)感的按鈕

    vue.js如何在網(wǎng)頁中實現(xiàn)一個金屬拋光質(zhì)感的按鈕

    這篇文章主要給大家介紹了關于vue.js如何在網(wǎng)頁中實現(xiàn)一個金屬拋光質(zhì)感的按鈕的相關資料,文中給出了詳細的實例代碼以及圖文將實現(xiàn)的方法介紹的非常詳細,需要的朋友可以參考下
    2023-04-04
  • Vue實現(xiàn)登錄以及登出詳解

    Vue實現(xiàn)登錄以及登出詳解

    本篇文章主要介紹了vue實現(xiàn)登陸登出的實現(xiàn)示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2021-09-09
  • element-ui el-dialog嵌套table組件,ref問題及解決

    element-ui el-dialog嵌套table組件,ref問題及解決

    這篇文章主要介紹了element-ui el-dialog嵌套table組件,ref問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Vue3項目中reset.scss模板使用導入

    Vue3項目中reset.scss模板使用導入

    這篇文章主要為大家介紹了Vue3項目中reset.scss模板使用導入示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • Vue中的$set的使用實例代碼

    Vue中的$set的使用實例代碼

    這篇文章主要介紹了Vue中的$set的使用,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-10-10

最新評論

陆丰市| 乌什县| 盈江县| 车险| 保靖县| 梅河口市| 中宁县| 苏尼特右旗| 边坝县| 吉木萨尔县| 阜宁县| 鲜城| 进贤县| 喀什市| 康乐县| 开化县| 福清市| 赞皇县| 芜湖市| 金平| 县级市| 西平县| 永丰县| 垣曲县| 安岳县| 临夏县| 梧州市| 老河口市| 澜沧| 乐昌市| 中山市| 通许县| 防城港市| 定远县| 五峰| 双鸭山市| 扎赉特旗| 西吉县| 古蔺县| 彭泽县| 宣武区|