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

Vue3中使用vuedraggable拖拽實戰(zhàn)教程

 更新時間:2023年06月16日 09:31:56   作者:冷太陽a  
這篇文章主要介紹了Vue3中使用vuedraggable拖拽實戰(zhàn)教程,文中通過示例介紹了vue3拖拽組件vuedraggable的使用demo,需要的朋友可以參考下

Vue3中簡單使用vuedraggable拖拽

一、安裝引入

npm i vuedraggable@4.1.0 --save
import Draggable from 'vuedraggable';

二 、使用

<template>
  <button @click="submit">提交數(shù)據(jù)</button>
  <div class="drag-box">
    <Draggable
      v-model="tags"
      :list="list"
      :animation="100"
      item-key="id"
      class="list-group"
      :forceFallback="true"
      ghost-class="ghost"
      @change="onMoveCallback"
      :move="getdata"
    >
      <template #item="{ element }">
        <div class="items">
          <div class="title">{{ element.label }}</div>
        </div>
      </template>
    </Draggable>
  </div>
</template>
<script lang="ts">
import { reactive} from 'vue';
import Draggable from 'vuedraggable';
export default {
  components: {
    Draggable,
  },
  setup() {
    let list = reactive([
      {
        label: '模塊1',
        id: 1,
        isflod: false,
      },
      {
        label: '模塊2',
        id: 2,
        isflod: false,
      },
      {
        label: '模塊3',
        id: 3,
        isflod: false,
      },
      {
        label: '模塊4',
        id: 4,
        isflod: false,
      },
      {
        label: '模塊5',
        id: 5,
        isflod: false,
      },
      {
        label: '模塊6',
        id: 6,
        isflod: false,
      },
    ]);
    const onMoveCallback = (val) => {
      console.log('拖動前的索引 :' + val.moved.newIndex);
      console.log('拖動后的索引 :' + val.moved.oldIndex);
    };
    const getdata = (val) => {
      console.log(val.draggedContext.element.id);
    };
    // 查看最新的數(shù)據(jù)
    const submit = () => {
      console.log(list);
    };
    // watch(
    //   list,
    //   (newValue, oldValue) => {
    //     console.log('list', newValue, oldValue);
    //   },
    //   { immediate: true }
    // );
    return {
      list,
      onMoveCallback,
      getdata,
      submit,
    };
  },
};
</script>
<style   scoped>
.drag-box .items {
  display: flex;
  justify-content: space-between;
  width: 80%;
  padding: 20px;
  margin-bottom: 20px;
  background: #e3e3e3;
  border-radius: 8px;
}
</style>

三、Api

group: “name”, // or { name: “…”, pull: [true, false, clone], put: [true, false, array] } name相同的組可以互相拖動
sort: true, // 內(nèi)部排序列表
delay: 0, // 以毫秒為單位定義排序何時開始。
touchStartThreshold: 0, // px,在取消延遲拖動事件之前,點應該移動多少像素?
disabled: false, // 如果設置為真,則禁用sortable。
store: null, // @see Store
animation: 150, // ms, 動畫速度運動項目排序時,’ 0 ’ -沒有動畫。
handle: “.my-handle”, // 在列表項中拖動句柄選擇器。
filter: “.ignore-elements”, // 不導致拖拽的選擇器(字符串或函數(shù))
preventOnFilter: true, // 調(diào)用“event.preventDefault()”時觸發(fā)“filter”
draggable: “.item”, // 指定元素中的哪些項應該是可拖動的。
ghostClass: “sortable-ghost”, // 設置拖動元素的class的占位符的類名。
chosenClass: “sortable-chosen”, // 設置被選中的元素的class
dragClass: “sortable-drag”, //拖動元素的class。
dataIdAttr: ‘data-id’,
forceFallback: false, // 忽略HTML5的DnD行為,并強制退出。(h5里有個屬性也是拖動,這里是為了去掉H5拖動對這個的影響
fallbackClass: “sortable-fallback”, // 使用forceFallback時克隆的DOM元素的類名。
fallbackOnBody: false, // 將克隆的DOM元素添加到文檔的主體中。(默認放在被拖動元素的同級)
fallbackTolerance: 0, // 用像素指定鼠標在被視為拖拽之前應該移動的距離。
scroll: true, // or HTMLElement
scrollFn: function(offsetX, offsetY, originalEvent, touchEvt, hoverTargetEl) { … }
scrollSensitivity: 30, // px, how near the mouse must be to an edge to start scrolling.
scrollSpeed: 10, // px

vue3 拖拽組件 vuedraggable的使用 demo

效果圖:

<template>
    <div class="container mover">
        <!-- animation 拖拽的過渡動畫的時間 -->
        <!-- onStart 開始拖拽的事件 -->
        <!-- onEnd 拖拽結(jié)束的事件 -->
        <!-- ghost-class 當前正在被拖拽的元素 的樣式的類名  -->
        <!-- sort 是否可以進行拖拽,false 不可以進行拖拽,  默認為true -->
        <!-- delay 鼠標按下去 多少秒之后才可以進行拖拽 -->
        <!-- handle 表示 當鼠標落在handle指定的元素上面時才允許拖動,下面的例子中 只有鼠標放到 + 的div 才能拖拽 -->
        <!-- filter 表示鼠標落在filter指定的元素上面 不允許拖動,和 handle正好相反 -->
        <!-- draggable 表示樣式為item的元素才能被拖動 -->
        <draggable :list="list" animation="300" @start="onStart" delay="3" :sort="true" @end="onEnd" item-key="name"
            ghost-class="ghost" handle=".mover" filter=".unmover" draggable=".item" fallback-tolerance="80">
            <template #item="{ element }">
                <div class="item ">
                    <div class="mover">+</div>
                    {{ element.name }}{{ element.id }}
                    <div class="mover unmover">-</div>
                </div>
            </template>
        </draggable>
    </div>
</template>
<script lang="ts">
import { defineComponent, reactive, toRefs } from "vue"
import draggable from "vuedraggable";
export default defineComponent({
    name: "HomeIndex",
    components: { draggable },
    setup() {
        const state = reactive({
            list: [
                {
                    name: '1',
                    id: 1,
                },
                {
                    name: '1',
                    id: 2,
                },
                {
                    name: '3',
                    id: 3,
                },
                {
                    name: '4',
                    id: 4,
                },
                {
                    name: '5',
                    id: 5,
                    disabled: false
                },
            ]
        })
        const onStart = () => {
            console.log('%c 開始拖', 'color:red');
        }
        const onEnd = () => {
            console.log('%c 結(jié)束拖', 'color:green');
        }
        return {
            ...toRefs(state),
            onStart,
            onEnd
        }
    }
})
</script>
<style lang="less" scoped>
.container {
    width: 100vw;
    height: 100vh;
    background: salmon;
    .item {
        width: 80%;
        height: 5vh;
        background: skyblue;
        border: 2px solid red;
        margin: 20px;
        display: flex;
        justify-content: space-between;
        .mover {
            width: 50px;
            height: 100%;
            background: red;
            font-size: 25px;
            text-align: center;
        }
        .unmover {
            width: 50px;
            height: 100%;
            background: red;
            font-size: 20px;
            text-align: center;
            float: right;
        }
    }
    .ghost {
        background: #0333f2 !important;
    }
}
</style>  

到此這篇關于Vue3中簡單使用vuedraggable拖拽的文章就介紹到這了,更多相關Vue3使用vuedraggable拖拽內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Vue中的性能優(yōu)化方案

    Vue中的性能優(yōu)化方案

    本文主要介紹了Vue中的性能優(yōu)化方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-08-08
  • 安裝VUE-CLI一直失敗的排錯過程及解決方案

    安裝VUE-CLI一直失敗的排錯過程及解決方案

    這篇文章主要介紹了安裝VUE-CLI一直失敗的排錯過程及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • Nuxt使用Vuex解讀

    Nuxt使用Vuex解讀

    這篇文章主要介紹了Nuxt使用Vuex的方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • vue 調(diào)用 RESTful風格接口操作

    vue 調(diào)用 RESTful風格接口操作

    這篇文章主要介紹了vue 調(diào)用 RESTful風格接口操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • SpringBoot結(jié)合Vue3實現(xiàn)簡單的前后端交互

    SpringBoot結(jié)合Vue3實現(xiàn)簡單的前后端交互

    本文主要介紹了SpringBoot結(jié)合Vue3實現(xiàn)簡單的前后端交互,結(jié)合實際案例,說明了如何實現(xiàn)前后端數(shù)據(jù)的交互,具有一定的?參考價值,感興趣的可以了解一下
    2023-08-08
  • 詳解Element-ui NavMenu子菜單使用遞歸生成時使用報錯

    詳解Element-ui NavMenu子菜單使用遞歸生成時使用報錯

    這篇文章主要介紹了詳解Element-ui NavMenu子菜單使用遞歸生成時使用報錯,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04
  • vue中使用codemirror的實例詳解

    vue中使用codemirror的實例詳解

    這篇文章主要介紹了vue中使用codemirror的實例教程,非常不錯,具有一定的參考借鑒價值 ,需要的朋友可以參考下
    2018-11-11
  • vue-model實現(xiàn)簡易計算器

    vue-model實現(xiàn)簡易計算器

    這篇文章主要為大家詳細介紹了vue-model實現(xiàn)簡易計算器,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • Uniapp的vue、nvue、uvue后綴名的區(qū)別及說明

    Uniapp的vue、nvue、uvue后綴名的區(qū)別及說明

    這篇文章主要介紹了Uniapp的vue、nvue、uvue后綴名的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-05-05
  • Vue數(shù)據(jù)增刪改查與表單驗證的實現(xiàn)流程介紹

    Vue數(shù)據(jù)增刪改查與表單驗證的實現(xiàn)流程介紹

    這篇文章主要介紹了Vue數(shù)據(jù)增刪改查與表單驗證的實現(xiàn),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-10-10

最新評論

鹤山市| 育儿| 武川县| 威海市| 安化县| 衡阳市| 梨树县| 隆子县| 肇州县| 平安县| 高淳县| 稻城县| 墨脱县| 寻甸| 巴中市| 包头市| 基隆市| 马边| 齐河县| 睢宁县| 平遥县| 诸城市| 洛阳市| 五原县| 平乐县| 兴安县| 扶风县| 东城区| 建昌县| 通江县| 公主岭市| 大庆市| 同心县| 炉霍县| 漳平市| 灵丘县| 斗六市| 靖宇县| 淅川县| 西乌珠穆沁旗| 岚皋县|