vue插件draggable实现拖拽移动图片顺序


Posted in Javascript onDecember 01, 2018

本文实例为大家分享了vue插件draggable实现拖拽移动图片顺序的具体方法,供大家参考,具体内容如下

vue插件draggable实现拖拽移动图片顺序

例如图片显示的这种图片列表、商品展示需要拖动图片改变顺序,vuedraggable可以实现拖拽。

首先,

npm i vuedraggable

然后在组件中引入,

import draggable from 'vuedraggable';

定义组件,

components: {
  draggable,
 },

标签中应用,

<ul class="pic-list clearfix">
   <draggable class="list-group" v-model="hotVOList" :options="{animation: 60,}"
     :move="getdata" @update="datadragEnd">
      <li v-for="(child,index) in hotVOList" :key="index">
      <img :src="child.picServerUrl1" alt="">
      <div class="edit-pop dn"></div>
      <!-- <div class="edit-box dn">
      <span class="banner-edit-btn" @click="eidtBanner(child.id)">编辑</span>
      <span class="banner-cancle-btn" @click="delateBanner(child.id)">删除</span>
      </div> -->
      <img class="prod-choose" v-if="child.flag == 1" src="../../assets/images/not-select.png" alt="" @click="selectProd(child.decorateId)"> 
      <img class="prod-choose" v-else-if="child.flag == 2" src="../../assets/images/prod-select.png" @click="selectProd2(child.decorateId)" alt="">
      <div class="edit-box-bottom" v-if="child.property == 1">
      <span class="conf-con">{{ child.goodsName }}</span>
      <p class="product-money"><span class="lower">低至</span>¥{{ child.lowestPrice }}</p>
      </div>
      <div class="edit-box-bottom" v-else>
      <span class="conf-con">{{ child.goodsName }}</span>
      <p class="product-money">
       <img src="../../assets/images/yuedu.png" alt="">
       <span class="browseNum ">{{ child.browseNum }}</span>
       <img src="../../assets/images/zan.png" alt="">
       <span class="browseNum ">{{ child.thumbNum }}</span>
      </p>
     </div>
   </li>
  </draggable>
</ul>

方法,

getdata (data) {
   
  },
  datadragEnd (evt) {
   var oneId = "";
   var otherId = "";
    // console.log('datadragEnd方法');
   console.log('拖动前的索引 :' + evt.oldIndex)
   console.log('拖动后的索引 :' + evt.newIndex)
   
   if(evt.newIndex == this.hotVOList.length - 1 && this.pageData.pageNum < Math.ceil(this.pageData.total/10)){
    this.$api.get("/mallConfig/hot_goods_list/" + this.addHotMallID,{
     pageNum:this.pageData.pageNum+1,
     pageSize:this.pageData.pageSize
    },
    su => {
     if (su.httpCode == 200) {
      this.newHotVOList = su.data.hotVOList;
      oneId = su.data.hotVOList[0].decorateId;
      otherId = this.hotVOList[evt.newIndex].decorateId;
      this.$api.get(
       "/mallConfig/hot_product/exchage_turn/" + this.addHotMallID,
       {
        oneId: oneId,
        otherId :otherId,
       },
       su => {
        if (su.httpCode == 200) {
         this.getBodyList(this.addHotMallID);
        }
       },
       err => {},
       { accessToken: sessionStorage.getItem("accessToken") }
      );
     }
    },
    err => {},
    { accessToken: sessionStorage.getItem("accessToken") })
   } else if(evt.newIndex == this.hotVOList.length - 1 && this.pageData.pageNum == Math.ceil(this.pageData.total/10)){
    otherId = this.hotVOList[evt.newIndex].decorateId;
    oneId = -1;
    this.$api.get(
     "/mallConfig/hot_product/exchage_turn/" + this.addHotMallID,
     {
      oneId: oneId,
      otherId :otherId,
     },
     su => {
      if (su.httpCode == 200) {
       this.getBodyList(this.addHotMallID);
      }
     },
     err => {},
     { accessToken: sessionStorage.getItem("accessToken") }
    );
   } else {
    otherId = this.hotVOList[evt.newIndex].decorateId;
    oneId = this.hotVOList[evt.newIndex + 1].decorateId;
    this.$api.get(
     "/mallConfig/hot_product/exchage_turn/" + this.addHotMallID,
     {
      oneId: oneId,
      otherId :otherId,
     },
     su => {
      if (su.httpCode == 200) {
       this.getBodyList(this.addHotMallID);
      }
     },
     err => {},
     { accessToken: sessionStorage.getItem("accessToken") }
    );
   }
  },

datadragEnd是调换结束调用的,里面可以根据需求处理一些数据。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript脚本性能优化注意事项
Nov 18 Javascript
超酷的网页音乐播放器DewPlayer使用方法
Dec 18 Javascript
javascript+ajax实现产品页面加载信息
Jul 09 Javascript
Java  Spring 事务回滚详解
Oct 17 Javascript
使用 Vue.js 仿百度搜索框的实例代码
May 09 Javascript
js统计页面上每个标签的数量实例代码
May 29 Javascript
JavaScript实现正则去除a标签并保留内容的方法【测试可用】
Jul 18 Javascript
JavaScript实现学生在线做题计时器功能
Dec 05 Javascript
基于Vue插入视频的2种方法小结
Apr 02 Javascript
JS/jQuery实现超简单的Table表格添加,删除行功能示例
Jul 31 jQuery
Vue 解决路由过渡动画抖动问题(实例详解)
Jan 05 Javascript
mapboxgl区划标签避让不遮盖实现的代码详解
Jul 01 Javascript
vue.draggable实现表格拖拽排序效果
Dec 01 #Javascript
vuedraggable+element ui实现页面控件拖拽排序效果
Jul 29 #Javascript
Vue组件Draggable实现拖拽功能
Dec 01 #Javascript
BootStrap modal实现拖拽功能
Dec 01 #Javascript
vuejs2.0运用原生js实现简单拖拽元素功能
Aug 21 #Javascript
BootStrap table实现表格行拖拽效果
Dec 01 #Javascript
一次Webpack配置文件的分离实战记录
Nov 30 #Javascript
You might like
php获取文件内容最后一行示例
2014/01/09 PHP
PHP写的资源下载防盗链类分享
2014/05/12 PHP
摘自织梦CMS中的图片处理类
2015/08/08 PHP
php生成静态html页面的方法(2种方法)
2015/09/14 PHP
php遍历解析xml字符串的方法
2016/05/05 PHP
浅谈PHP中如何实现Hook机制
2017/11/14 PHP
PHP中通过getopt解析GNU C风格命令行选项
2019/11/18 PHP
项目实践之javascript技巧
2007/12/06 Javascript
js相册效果代码(点击创建即可)
2013/04/16 Javascript
Javascript写入txt和读取txt文件示例
2014/02/12 Javascript
jQuery 实现侧边浮动导航菜单效果
2014/12/26 Javascript
jQuery结合HTML5制作的爱心树表白动画
2015/02/01 Javascript
JavaScript获取URL汇总
2015/06/08 Javascript
深入讲解AngularJS中的自定义指令的使用
2015/06/18 Javascript
浅谈JS中的bind方法与函数柯里化
2016/08/10 Javascript
JavaScript仿百度图片浏览效果
2016/11/23 Javascript
完美解决jQuery的hover事件在IE中不停闪动的问题
2017/02/10 Javascript
JS实现新建文件夹功能
2017/06/17 Javascript
利用vue+elementUI实现部分引入组件的方法详解
2017/11/22 Javascript
vuex实现登录状态的存储,未登录状态不允许浏览的方法
2018/03/09 Javascript
基于layui的下拉列表的数据回显方法
2019/09/24 Javascript
微信小程序 下拉刷新及上拉加载原理解析
2019/11/06 Javascript
Python sys.argv用法实例
2015/05/28 Python
浅谈python中set使用
2016/06/30 Python
基于并发服务器几种实现方法(总结)
2017/12/29 Python
python实现多张图片拼接成大图
2019/01/15 Python
Python实现的爬取百度文库功能示例
2019/02/16 Python
使用Django简单编写一个XSS平台的方法步骤
2019/03/25 Python
python实现身份证实名认证的方法实例
2019/11/08 Python
python中的TCP(传输控制协议)用法实例分析
2019/11/15 Python
Python函数的定义方式与函数参数问题实例分析
2019/12/26 Python
2014学校庆三八妇女节活动总结
2014/03/01 职场文书
驾驶员安全责任书
2014/07/22 职场文书
工作经常出错的检讨书
2014/09/13 职场文书
运动会800米赞词
2015/07/22 职场文书
2016年6.5世界环境日宣传活动总结
2016/04/01 职场文书