【elementUI系列一】vue拖拽功能实现-vuedraggable实现多层嵌套拖拽

这篇具有很好参考价值的文章主要介绍了【elementUI系列一】vue拖拽功能实现-vuedraggable实现多层嵌套拖拽。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

系列文章目录

文章目录
  • 【elementUI系列二】el-image实现下载功能
  • 【elementUI系列三】el-table多列排序(后端排序)并清除排序

拖拽功能组件

awe-dnd和vue-draggable做了一番比较,最终选择了vue-draggable,至于原因:

  1. vue-draggable的@start和@end只会在拖拽元素移动的开始和结束时触发,过程中不会触发
  2. awe-dnd会一直监听拖拽的过程,在拖拽的过程中会一直打印信息

使用

各项配置介绍:vuedraggable文文档

1.安装 npm或者yarn

yarn add vuedraggable
npm i -S vuedraggable

2.在vue项目中引入draggable 

//导入draggable组件
import draggable from 'vuedraggable';
......
export default {
  components: {
    draggable,
  },
  data() {
    return {
      imageUrlList: []
    };
  },
methods: {
    /**
     * @description: 预览的图片添加下载按钮
     */
    clickImage() {
      
    },
    
    /**
     * @description: 查看-大图预览, 先看当前大图
     * @param {Number} index 当前下标
     * @param {Array} imgList 所有大图
     * @return {Array} arr 当前图片为第一个的大图
     */
    getPreviewList(index, imgList) {
      let arr = [];
      let i = 0;
      for (i; i < imgList.length; i++) {
        arr.push(imgList[i + index].fileUrl);
        if (i + index >= imgList.length - 1) {
          index = 0 - (i + 1);
        }
      }
      return arr;
    },

    
  }
 
};

3.在模板中使用draggable

<draggable
            v-model="imageUrlList"
            animation="300"
            draggable=".drag-area"
          >
            <div
              class="drag-area"
              v-for="(item, index) in imageUrlList"
              :key="item.fileName"
            >
              <el-image
                @click.stop.prevent="clickImage"
                :src="item.fileUrl"
                :preview-src-list="getPreviewList(index, imageUrlList)"
              >
                <div slot="error" class="image-slot">
                  <i class="el-icon-picture-outline"></i>
                </div>
              </el-image>
            </div>
            <div class="el-upload__text">
               <em>点击上传</em>
             </div>
          </draggable>

 以下几点需要注意文章来源地址https://www.toymoban.com/news/detail-430923.html

  1. draggable区域内嵌入多层,要把拖拽区域加上class名称,draggable=‘.class名’,这样就能确保draggable内部分可以拖拽,部分不能拖拽
  2. el-image的点击事件和vue.draggable的拖拽事件会有事件冲突的问题,那么你需要使用.stop和.prevent修饰符来禁止默认事件和冒泡.

到了这里,关于【elementUI系列一】vue拖拽功能实现-vuedraggable实现多层嵌套拖拽的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ElementUI的Dialog弹窗实现拖拽移动功能

    在项目中使用el-dialog中发现不能够拖拽移动,因此网上找了相关资料,使用自定义指令实现拖拽功能。 1、创建自定义指令: 新建文件 directive/el-drag-dialog/index.js 新建文件 directive/el-drag-dialog/drag.js 2、引入自定义指令   3、使用自定义指令(v-el-darg-dialog) 其中v-el-drag-dialog为自

    2024年02月12日
    浏览(37)
  • Vue+ElementUI技巧分享:结合Sortablejs实现表格行拖拽

    在很多动态网页应用中,用户界面的交互性是提高用户体验的关键。在 Vue.js 中,结合 Element UI 和 sortablejs ,我们可以轻松实现表格的行拖拽功能。本文将演示如何在 Vue 项目中使用这些工具,并在拖拽后将数据更新到后端服务系统。 确保你的项目中已经安装了 Element UI 和

    2024年02月04日
    浏览(59)
  • element ui el-table sorttable实现表格拖拽排序(vuedraggable)

    如果已经安装了 vuedraggable ,则可以不用安装 sortablejs

    2024年02月11日
    浏览(41)
  • web前端之拖拽API、上传多图片时拖拽排序、表格行或列拖拽排序、复制元素跨区域放置、拖放、投掷、若依、vuedraggable、sortablejs、element、plus、vue、ui

    前言 vue3+element-puls列表行、列拖拽的需求,想找一个成熟的解决方法。但发现vue3的比较少,所以就把这个分享出来,希望可以帮助到大家。vuedraggable是一款vue3的拖拽插件,基于sortable.js实现,可以用来拖拽列表、菜单、工作台、选项卡等常见的工作场景。安装的是vuedraggabl

    2024年01月22日
    浏览(45)
  • vue项目实现鼠标拖拽功能

    当鼠标按下鼠标移动的时候,记录移动中的 x、y 值,那么这个被拖拽的 dom 的 top 和 left 值就是: top=鼠标按下时记录的 dom 的 top 值+(移动中的 y 值 - 鼠标按下时的 y 值) left=鼠标按下时记录的 dom 的 left 值+(移动中的 x 值 - 鼠标按下时的 x 值)  

    2024年02月11日
    浏览(44)
  • vue项目实现图片缩放与拖拽功能

    在项目开发中遇到一个需求: 1:用鼠标滚轮可对图片进行缩放处理 2:点击按钮可对图片进行缩放处理 3:可对图片进行拖拽处理 我在开发中通过自己实现与百度查看优秀的铁子进行了两种类型的使用 源码: 效果: 源码: 效果:@韩桑

    2024年02月12日
    浏览(46)
  • vue实现鼠标拖拽div左右移动的功能

    直接代码: 这部分区域可以鼠标拖拽左右滚动

    2024年02月03日
    浏览(51)
  • VUE3实现拖拽功能自定义指令

    1.首先创建一个js文件,命名为drag.js    注意看注释部分,对操作DOM块进行了不同需求的支持     可以只在移动头部时操作整个DOM,或者是否允许DOM元素移出屏幕都能实现 2.在main.js中引入drag.js 3.在你想使用的标签中添加 v-drag 即可实现拖动了  

    2024年02月14日
    浏览(45)
  • 记录--Vue3问题:如何实现组件拖拽实时预览功能?

    实现一个CMS内容管理系统,在后台进行内容编辑,在官网更新展示内容。 关于后台的编辑功能,大致分为两部分: 组件拖拽预览 、 组件内容编辑实时预览 。 对于组件拖拽预览,用户可以在含有各种功能组件的列表中,选择需要的组件进行拖拽。将组件拖拽到预览画布中后

    2024年02月04日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包