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 相关文章推荐
jquery实现动态菜单的实例代码
Nov 28 Javascript
javascript学习笔记(二)数组和对象部分
Sep 30 Javascript
浅析Node.js 中 Stream API 的使用
Oct 23 Javascript
js HTML5手机刮刮乐代码
Sep 29 Javascript
利用Node.JS实现邮件发送功能
Oct 21 Javascript
JavaScript实现鼠标点击导航栏变色特效
Feb 08 Javascript
微信小程序 共用变量值的实现
Jul 12 Javascript
bootstrap table实现双击可编辑、添加、删除行功能
Sep 27 Javascript
通过js控制时间,一秒一秒自己动的实例
Oct 25 Javascript
Vue CLI3中使用compass normalize的方法
May 30 Javascript
vue动态配置模板 'component is'代码
Jul 04 Javascript
Vue.js仿Select下拉框效果
Feb 18 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 静态变量与自定义常量的使用方法
2010/01/26 PHP
PHP 面向对象 final类与final方法
2010/05/05 PHP
PHP在网页中动态生成PDF文件详细教程
2014/07/05 PHP
PHP随机生成中文段落示例【测试网站内容时使用】
2020/04/26 PHP
javascript 动态修改样式和层叠样式表代码
2010/04/27 Javascript
jQuery的观察者模式详解
2014/12/22 Javascript
JavaScript修改浏览器tab标题小技巧
2015/01/06 Javascript
JQuery基础语法小结
2015/02/27 Javascript
Angular.JS学习之依赖注入$injector详析
2016/10/20 Javascript
用jQuery实现圆点图片轮播效果
2017/03/19 Javascript
js 去掉字符串前后空格实现代码集合
2017/03/25 Javascript
JS实现将对象转化为数组的方法分析
2019/01/21 Javascript
详解vue配置后台接口方式
2019/03/29 Javascript
详细教你微信公众号正文页SVG交互开发技巧
2019/07/25 Javascript
微信小程序wx.navigateTo方法里的events参数使用详情及场景
2020/01/07 Javascript
基于Vue+Webpack拆分路由文件实现管理
2020/11/16 Javascript
Python实例分享:快速查找出被挂马的文件
2014/06/08 Python
Python threading多线程编程实例
2014/09/18 Python
Python编程实现数学运算求一元二次方程的实根算法示例
2017/04/02 Python
浅谈python可视化包Bokeh
2018/02/07 Python
Python3使用正则表达式爬取内涵段子示例
2018/04/22 Python
Python解决八皇后问题示例
2018/04/22 Python
python中reader的next用法
2018/07/24 Python
零基础小白多久能学会python
2020/06/22 Python
新加坡航空官方网站:Singapore Airlines
2016/10/13 全球购物
德国高性价比网上药店:medpex
2017/07/09 全球购物
欧洲第一的摇滚和金属乐队服装网站:EMP
2017/10/26 全球购物
澳大利亚在线生活方式商店:Mytopia
2018/07/08 全球购物
俄罗斯三星品牌商店:Samsungstore
2020/04/05 全球购物
新闻专业应届生求职信
2013/10/31 职场文书
商业计算机应用专业自荐书
2014/06/09 职场文书
2014审计局领导班子民主生活会对照检查材料思想汇报
2014/09/20 职场文书
2015年度学校卫生工作总结
2015/05/12 职场文书
穆斯林的葬礼读书笔记
2015/06/26 职场文书
MySQL之PXC集群搭建的方法步骤
2021/05/25 MySQL
django中websocket的具体使用
2022/01/22 Python