广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Vue拖拽排序组件Vue-Slicksort解读
  • 579
分享到

Vue拖拽排序组件Vue-Slicksort解读

Vue拖拽排序组件Vue-SlicksortVue拖拽排序 2023-03-10 14:03:21 579人浏览 八月长安
摘要

目录一、效果图二、安装组件三、使用组件四、组件参数五、组件方法HandleDirective总结一、效果图 二、安装组件 npm i Vue-slicksort -S 三、使用组件

一、效果图

二、安装组件

npm i Vue-slicksort -S

三、使用组件

<div class="maintenance_img mt50 mb50 pl20 pr20" style="font-size: 16px;font-weight: 600;position: relative;">
    <!-- 拖拽 -->
    <SlickList
        :lockToContainerEdges="true"
        lockAxis="x"
        axis="x"
        v-model="maintenanceData.img_list"
        @input="getChangeLists"
        style="display: flex"
        >
        <SlickItem style="z-index: 10000" v-for="(item, index) in maintenanceData.img_list" :index="index" :key="index">
            <div class="maintenance_top">
                <img :src="item" @mouseover="changeMask(index)" @mouseout="changeMask(index)" alt="">
            </div>
        </SlickItem>
    </SlickList>
    <div style="display: flex;position: absolute;bottom: -15px;">
        <div class="maintenance_icon" v-for="(item, index) in maintenanceData.img_list" :key="index">
            <div class="img_bg" :ref="'mask' + index" @mouseover="changeMask(index)" @mouseout="changeMask(index)">
                <Icon @click.stop="isImgShow = true;bigImg = item" class="pointer" size="20" color="#000000" type="md-search" />
                <Icon @click.stop="downloadImg(item)" class="pointer" size="20" color="#000000" type="md-download" />
                <Icon @click.stop="movingitems(4, index)" class="pointer" size="20" color="#000000" type="md-trash" />
            </div>
        </div>
    </div>
    <!-- 600*330 -->
    <div class="add-img" v-if="maintenanceData.img_list.length<5">
        <span>
            <Icon type="md-add" size="30"></Icon>
        </span>
        <p>添加图片</p>
        <input @change="uploadImegs($event, 1)" type="file" accept="image/*" />
    </div>
</div>
    import { SlickList, SlickItem } from "vue-slicksort";
    export default {
        components:{
            SlickItem,
            SlickList
        },
        data() {
            return {
                maintenanceData: {
                    img_list: [], //图片
                },
            }
        },
        created() {
            
        },
        methods: {
            getChangeLists(vals) {
                // 拖拽完成后返回新的排序数组
                console.log(vals);
            },
        },
    }
.maintenance_top {
    display: flex;
    z-index: 10000;
}
.maintenance_top {
    width: 140px;
    height: 78px;
    border: 1px dashed #ccc;
    border-radius: 6px;
    display: flex;
    align-items: center;
    position: relative;
    margin-right: 15px;
}
.maintenance_top > img{
    max-width: 138px;
    max-height: 138px;
    border-radius: 6px;
}
.maintenance_icon{
    width: 140px;
    display: flex;
    align-items: center;
    position: relative;
    margin-right: 15px;
}
.maintenance_img{
    display: flex;
}
.maintenance_img>div>div{
    z-index: 10000;
}
.maintenance_img > .add-img{
    display: block;
    width: 140px;
    height: 78px;
    border-radius: 6px;
} 
.img_bg{
    width: 100%;
    height: 40px;
    position: absolute;
    bottom: -20px;
    left: 0;
    border-radius: 6px;
    display: none;
    align-items: center;
    justify-content: space-evenly;
}

四、组件参数

名称类型默认值说明
valueArray-列表的内容
axisStringy列表元素可以被横向拖拽,纵向拖拽还是网格拖拽。用x,y,xy来表示
lockAxisArray-用于排序时在坐标系中定元素的移动
helperClassString-helper的自定义样式类
transitionDurationNumber300元素移动动画的持续时间
pressDelayNumber0如果需要当元素被按下一段时间再允许拖拽,可以设置这个属性
pressThresholdNumber5移动允许被忽略的阈值,单位是像素
distanceNumber0如果需要在拖拽出一定距离之后才被识别为正在拖拽的元素,可以设置这个属性
useDragHandleBooleanfalse如果使用HandleDirective,设置为true
useWindowAsScrollContainerBooleanfalse是否设置window为可滚动的容器
hideSortableGhostBooleantrue是否自动隐藏ghost元素
lockToContainerEdgesBooleanfalse是否对正在拖拽的元素锁定容器边缘
lockOffsetString50%对正在拖拽的元素锁定容器边缘的偏移量
shouldCancelStartFunction-在拖拽开始前这个方法将被调用
getHelperDimensionsFunction-可选方法({node, index, collection}),用于返回SortableHelper的计算尺寸

五、组件方法

名称参数说明
sortStartevent, node, index, collection当拖拽开始时触发
sortMoveevent当拖拽时鼠标移动时触发
sortEndevent, newIndex, oldIndex, collection当拖拽结束时触发
inputnewList当拖拽结束后产生新的列表时触发

HandleDirective

v-handle 指令在可拖动元素内部使用。(即用了这个指令,可以让拖动只在元素的某个位置生效)

Container 必须由 :useDragHandle 属性,且设置为 true 时才能正常工作。

这里有关于此的一个简单元素的例子:

<template>
	<li class="list-item">
	    <!-- 拖动只在 span 元素上生效 -->
	    <span v-handle class="handle"></span>
	    {{item.value}}
	</li>
</template>

<script>
    import { ElementMixin, HandleDirective } from 'vue-slicksort';

    export default {
        mixins: [ElementMixin],
        directives: { handle: HandleDirective },
    };
</script>

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: Vue拖拽排序组件Vue-Slicksort解读

本文链接: https://www.lsjlt.com/news/199275.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Vue拖拽排序组件Vue-Slicksort解读
    目录一、效果图二、安装组件三、使用组件四、组件参数五、组件方法HandleDirective总结一、效果图 二、安装组件 npm i vue-slicksort -S 三、使用组件...
    99+
    2023-03-10
    Vue拖拽排序组件 Vue-Slicksort Vue拖拽排序
  • Vue拖拽排序组件Vue-Slicksort怎么使用
    这篇“Vue拖拽排序组件Vue-Slicksort怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Vue拖拽排序组件V...
    99+
    2023-07-05
  • vue实现拖拽排序效果
    本文实例为大家分享了vue实现拖拽排序效果的具体代码,供大家参考,具体内容如下 效果预览 组件 drag.vue <template>   <Transition...
    99+
    2022-11-13
  • vue拖拽组件vuedraggable API options如何实现盒子之间相互拖拽排序
    小编给大家分享一下vue拖拽组件vuedraggable API options如何实现盒子之间相互拖拽排序,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下...
    99+
    2022-10-19
  • vue实现移动端touch拖拽排序
    目录功能介绍:大致需求:整体思路:简单效果展示:具体实现:一、display:flex+v-for布局:二、touch事件绑定:三、卡片移动:四、获取手指所在位置:五、操作数组(删除...
    99+
    2022-09-27
  • Vue 可拖拽组件Vue Smooth DnD的使用详解
    目录简介和 Demo 展示API: Container属性生命周期回调事件API: Draggable实战简介和 Demo 展示 最近需要有个拖拽列表的需求,发现一个简单好用的 Vu...
    99+
    2022-11-12
  • Vue实用功能之实现拖拽元素、列表拖拽排序
    目录Vue实现拖拽元素、列表拖拽排序组件使用补充:排序动画总结Vue实现拖拽元素、列表拖拽排序 需求:    1、左右两个容器,左边和右边的元素可以拖动...
    99+
    2022-11-13
    vue列表拖拽排序 vue实现拖拽功能 vue实现组件拖拽
  • vue拖拽组件vuedraggable使用说明详解
    vue拖拽组件vuedraggable的使用说明,供大家参考,具体内容如下 需了解H5的draggable属性,通过下面的代码注释,可了解 <!DOCTYPE html>...
    99+
    2022-11-13
  • Vue组件设计之多列表拖拽交换排序功能实现
    目录1. 安装所需依赖2. 组件设计实现3. 组件使用示例在前端开发中,拖拽排序是一种提升用户体验非常好的方式,常见的场景有单列表拖拽排序,多列表拖拽交换排序,比如以下这种效果: ...
    99+
    2023-05-18
    vue拖拽交换排序 vue多列表拖拽交换排序 vue列表拖拽排序
  • VUE使用draggable实现组件拖拽
    本文实例为大家分享了draggable组件拖拽实例,供大家参考,具体内容如下 实现步骤 1、导入draggable依赖 npm i -S vuedraggable 2、引入dragg...
    99+
    2022-11-13
  • vue怎么实现列表拖拽排序效果
    这篇文章主要介绍“vue怎么实现列表拖拽排序效果”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“vue怎么实现列表拖拽排序效果”文章能帮助大家解决问题。效果如下:<template>&nb...
    99+
    2023-06-29
  • Vue可拖拽组件Vue Smooth DnD的使用方法
    本篇内容主要讲解“Vue可拖拽组件Vue Smooth DnD的使用方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Vue可拖拽组件Vue Smooth DnD的使用方法”吧!目录简介和 De...
    99+
    2023-06-20
  • Vue实现可拖拽组件的方法
    本文为大家分享了Vue实现可拖拽、拖拽组件,供大家参考,具体内容如下 描述: 组件仅封装拖拽功能,内容通过#header、#default、#footer插槽 自定义 效果:&nbs...
    99+
    2022-11-12
  • vue实现列表拖拽排序的示例代码
     本文主要介绍了vue实现列表拖拽排序的示例代码,具体如下: <template> <div class="test_wrapper" @drago...
    99+
    2022-11-13
  • vue实现页面div盒子拖拽排序功能
    vue 实现页面div盒子拖拽排序功能前言:目前市面上有很多实现拖拽排序功能的插件和方法,本节不过多累述,只讲一种:css3的transition-group方法 效果图: 1....
    99+
    2022-11-12
  • Vue+Element树形表格实现拖拽排序示例
    目录安装sortablejs在需要的页面引入表格加上row-key="id"树形表格排序(树结构)方法介绍注意点结语今天给大家分享一下树形表格拖拽排序,树形表格排...
    99+
    2022-11-13
    Vue Element树形表格拖拽排序 Vue Element表格拖拽
  • VUE怎么使用draggable实现组件拖拽
    这篇文章主要讲解了“VUE怎么使用draggable实现组件拖拽”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“VUE怎么使用draggable实现组件拖拽”吧!实现步骤1、导入draggab...
    99+
    2023-06-29
  • vue中实现拖拽排序功能的详细教程
    目录原生拖拽 API 实现拖拽设置元素 dragable拖放事件拖拽排序拖拽API + 防抖实现vue awe-dnd 拖拽组件安装 awe-dnd 组件库在 main.js 中将 ...
    99+
    2022-11-13
  • Vue中拖拽组件开发的示例分析
    这篇文章主要为大家展示了“Vue中拖拽组件开发的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Vue中拖拽组件开发的示例分析”这篇文章吧。为什么选择Vu...
    99+
    2022-10-19
  • 实现vue图片缩放方式-拖拽组件
    目录实现效果如下父组件如下子组件imgbox.vue如下实现效果如下 这几天做了个没做过的组件,以此记录下,需要的效果是在一个dom内,缩放拖拽图片。 封装的子组件imgbox.V...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作