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

vue如何實現(xiàn)拖動圖片進行排序Vue.Draggable

 更新時間:2022年04月22日 17:04:46   作者:ji_ban  
這篇文章主要介紹了vue如何實現(xiàn)拖動圖片進行排序Vue.Draggable,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

拖動圖片進行排序Vue.Draggable

好久沒接觸vue的項目了,最近接到一個vue圖片處理的小項目,有一項需求是要實現(xiàn)拖動圖片就行排序。

接到這個需求之后立馬想到了Vue.Draggable這款基于Sortable.js實現(xiàn)的vue拖拽插件

下面是實現(xiàn)過程 

第一步:安裝Vue.Draggable。兩種方式npm和yarn   (我用的npm)

npm i -S vuedraggable
yarn add vuedraggable

第二步:全局安裝完成之后在main.js中全局引用也行在需要的頁面也用也沒問題 (我因為就一個頁面需要我就單頁面引入的)

<script>
import draggable from "vuedraggable"
export default {
? components: {
? ? draggable
? }
}
</script>

第三步:安裝和引用都完成了,現(xiàn)在開始使用了。

<template>
? <div class="col">
? ? <draggable v-model="data" filter=".forbid" animation="300" :move="onMove">
? ? ? <transition-group>
? ? ? ? <div v-for="(item, index) in data" :key="index">
? ? ? ? ? <div class="img-hover">
? ? ? ? ? ? <img :src="'http://xxxxx' + item.img"/>
? ? ? ? ? </div>
? ? ? ? </div>
? ? ? </transition-group>
? ? </draggable>
? </div>
</template>

 注意:

/**
?*代碼中的data為你的數(shù)據(jù)列表,onMove為你在拖動圖片是觸發(fā)的函數(shù)方法。
?*transition-group標(biāo)簽下一定是v-for循環(huán),不然會報錯。
**/

這樣,一個簡單的圖片拖拽排序的簡單demo就完成了。 

項目draggable拖拽移動圖片順序

第一步、導(dǎo)入

npm i vuedraggable

第二步、組件引入

import draggable from 'vuedraggable';

第三步、定義組件

components: { draggable},

第四步、頁面中使用

<template>
? <div class="app-container">
? ? ? <div :class="canEdit? 'dargBtn-lock el-icon-unlock': 'dargBtn-lock el-icon-lock' " @click="removeEvent()">{{canEdit? '調(diào)整':'鎖定'}}</div>
? ? ? <ul class="projset-content">
? ? ? ? <draggable
? ? ? ? ? :move="onMove"
? ? ? ? ? :list="imgList"
? ? ? ? ? handle=".dargBtn"
? ? ? ? ? :animation="200"
? ? ? ? ? filter=".undraggable"
? ? ? ? >
? ? ? ? ? <li v-for="(item, index) in imgList" :key="index" :class="canEdit ? 'draggable' : 'undraggable'">
? ? ? ? ? ? <div class="dargBtn">
? ? ? ? ? ? ? <svg-icon icon-class="drag" />
? ? ? ? ? ? </div>
? ? ? ? ? ? <img :src="item.path" alt="">
? ? ? ? ? ? <span>{{item.name}}</span>
? ? ? ? ? </li>
? ? ? ? </draggable>
? ? ? </ul>
? </div>
</template>
<script>
? import draggable from 'vuedraggable';
? export default {
? ? components: { draggable},
? ? data(){
? ? ? return{
? ? ? ? canEdit:true,
? ? ? ? imgList: [
? ? ? ? ? {
? ? ? ? ? ? path: 'https://lupic.cdn.bcebos.com/20210629/3000005161_14.jpg',
? ? ? ? ? ? name: '1',
? ? ? ? ? },
? ? ? ? ? {
? ? ? ? ? ? path: 'https://lupic.cdn.bcebos.com/20210629/26202931_14.jpg',
? ? ? ? ? ? name: '2',
? ? ? ? ? },
? ? ? ? ? {
? ? ? ? ? ? path: 'https://lupic.cdn.bcebos.com/20210629/27788166_14.jpg',
? ? ? ? ? ? name: '3',
? ? ? ? ? }
? ? ? ? ]
? ? ? }
? ? },
? ? created() {
? ? },
? ? mounted(){},
? ? methods:{
? ? ? onMove(relatedContext, draggedContext){
? ? ? ? console.log(relatedContext.relatedContext.list);
? ? ? },
? ? ? removeEvent (item) {
? ? ? ? if(this.canEdit){
? ? ? ? ? this.canEdit = false;
? ? ? ? }else{
? ? ? ? ? this.canEdit = true;
? ? ? ? }
? ? ? ? console.log(this.canEdit);
? ? ? }
? ? }
? }
</script>
<style scoped lang="scss">
? .app-container{
? ? background: #ffffff;
? ? height: 100%;
? ? .dargBtn-lock{
? ? ? margin: 0px 50px;
? ? ? color: #2ea9df;
? ? }
? ? .projset-content{
? ? ? list-style-type: none;
? ? ? position: relative;
? ? ? li{
? ? ? ? display: inline-block;
? ? ? ? margin: 10px;
? ? ? }
? ? ? img{
? ? ? ? width: 141px;
? ? ? ? height: 100px;
? ? ? }
? ? ? span{
? ? ? ? justify-content: center;
? ? ? ? display: flex;
? ? ? }
? ? ? .dargBtn{
? ? ? ? position: absolute;
? ? ? ? line-height: 100px;
? ? ? ? text-align: center;
? ? ? ? width: 141px;
? ? ? ? height: 100px;
? ? ? ? display: none;
? ? ? ? color: white;
? ? ? ? background: rgba(101, 101, 101, 0.6);
? ? ? }
? ? ? .draggable{
? ? ? ? cursor: pointer;
? ? ? ? width: 141px;
? ? ? ? height: 100px;
? ? ? }
? ? ? .draggable:hover .dargBtn{
? ? ? ? display: block;
? ? ? }
? ? }
? }
</style>

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue直接打開public(本地)文件下的pdf文件方式

    vue直接打開public(本地)文件下的pdf文件方式

    這篇文章主要介紹了vue直接打開public(本地)文件下的pdf文件方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • Vue Hook Event 深度解讀

    Vue Hook Event 深度解讀

    Hook Event 是 Vue 的自定義事件結(jié)合生命周期鉤子實現(xiàn)的一種從組件外部為組件注入額外生命周期方法的功能,本文重點給大家介紹Vue Hook Event 解讀,感興趣的朋友一起看看吧
    2023-01-01
  • vue+elementUI(el-upload)圖片壓縮,默認(rèn)同比例壓縮操作

    vue+elementUI(el-upload)圖片壓縮,默認(rèn)同比例壓縮操作

    這篇文章主要介紹了vue+elementUI(el-upload)圖片壓縮,默認(rèn)同比例壓縮操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • Vue實現(xiàn)登錄以及登出詳解

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

    本篇文章主要介紹了vue實現(xiàn)登陸登出的實現(xiàn)示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2021-09-09
  • vue實現(xiàn)購物車列表

    vue實現(xiàn)購物車列表

    這篇文章主要為大家詳細介紹了vue實現(xiàn)購物車列表,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • Vue中原生template標(biāo)簽失效如何解決

    Vue中原生template標(biāo)簽失效如何解決

    這篇文章主要介紹了Vue中原生template標(biāo)簽失效如何解決,找了整一天也沒找著這事件為什么觸發(fā)不了,第二天意識到原生代碼里的template可能有問題,在原生環(huán)境中template標(biāo)簽內(nèi)部的東西是不會渲染出來的,雖然解析器在加載頁面的時候確實會處理這部分代碼片段
    2023-02-02
  • vue3如何定義變量及ref、reactive、toRefs特性說明

    vue3如何定義變量及ref、reactive、toRefs特性說明

    這篇文章主要介紹了vue3如何定義變量及ref、reactive、toRefs特性說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • vue js格式化數(shù)字為金額格式代碼

    vue js格式化數(shù)字為金額格式代碼

    這篇文章主要介紹了vue js格式化數(shù)字為金額格式代碼,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • Vue3實現(xiàn)計算屬性的代碼詳解

    Vue3實現(xiàn)計算屬性的代碼詳解

    計算屬性對于前端開發(fā)來說算是經(jīng)常使用的一個能力了,本文將從代碼層面來給大家介紹下Vue3是如何實現(xiàn)計算屬性的,需要的朋友可以參考下
    2023-07-07
  • vue 函數(shù)調(diào)用加括號與不加括號的區(qū)別

    vue 函數(shù)調(diào)用加括號與不加括號的區(qū)別

    這篇文章主要介紹了vue 函數(shù)調(diào)用加括號與不加括號的區(qū)別,幫助大家更好的理解和使用vue,感興趣的朋友可以了解下
    2020-10-10

最新評論

古交市| 浦城县| 长子县| 会泽县| 灵丘县| 大同县| 新民市| 梧州市| 湾仔区| 搜索| 淮北市| 静宁县| 城固县| 兴仁县| 女性| 买车| 东海县| 太原市| 南汇区| 平邑县| 鄂托克前旗| 石林| 晋州市| 泾阳县| 唐河县| 芜湖市| 城步| 彝良县| 漳浦县| 张家口市| 盐源县| 张家港市| 泽库县| 土默特右旗| 昌江| 耒阳市| 涞源县| 广水市| 静宁县| 东光县| 北安市|