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

vue如何實(shí)現(xiàn)拖動(dòng)圖片進(jìn)行排序Vue.Draggable

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

拖動(dòng)圖片進(jìn)行排序Vue.Draggable

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

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

下面是實(shí)現(xiàn)過(guò)程 

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

npm i -S vuedraggable
yarn add vuedraggable

第二步:全局安裝完成之后在main.js中全局引用也行在需要的頁(yè)面也用也沒問(wèn)題 (我因?yàn)榫鸵粋€(gè)頁(yè)面需要我就單頁(yè)面引入的)

<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為你在拖動(dòng)圖片是觸發(fā)的函數(shù)方法。
?*transition-group標(biāo)簽下一定是v-for循環(huán),不然會(huì)報(bào)錯(cuò)。
**/

這樣,一個(gè)簡(jiǎn)單的圖片拖拽排序的簡(jiǎn)單demo就完成了。 

項(xiàng)目draggable拖拽移動(dòng)圖片順序

第一步、導(dǎo)入

npm i vuedraggable

第二步、組件引入

import draggable from 'vuedraggable';

第三步、定義組件

components: { draggable},

第四步、頁(yè)面中使用

<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>

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

相關(guān)文章

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

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

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

    Vue Hook Event 深度解讀

    Hook Event 是 Vue 的自定義事件結(jié)合生命周期鉤子實(shí)現(xiàn)的一種從組件外部為組件注入額外生命周期方法的功能,本文重點(diǎ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)同比例壓縮操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-08-08
  • Vue實(shí)現(xiàn)登錄以及登出詳解

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

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

    vue實(shí)現(xiàn)購(gòu)物車列表

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

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

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

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

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

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

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

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

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

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

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

最新評(píng)論

清远市| 疏勒县| SHOW| 宜兰市| 大安市| 宜昌市| 玛纳斯县| 奉贤区| 新化县| 耒阳市| 冷水江市| 和静县| 鹤峰县| 漳州市| 青岛市| 红安县| 广德县| 扎兰屯市| 海南省| 焦作市| 武邑县| 安岳县| 厦门市| 东丽区| 卫辉市| 新疆| 延津县| 兰坪| 澄迈县| 宁安市| 青神县| 武川县| 津市市| 呼图壁县| 滨海县| 宾川县| 盘锦市| 永顺县| 扎囊县| 通化县| 沛县|