基于Vue实现拖拽功能


Posted in Javascript onJuly 29, 2020

本文实例为大家分享了Vue实现拖拽功能的具体代码,供大家参考,具体内容如下

效果图:

基于Vue实现拖拽功能

HTML代码:

<div id="box">       
 位置
 <br>x:{{val.x}} <br>y:{{val.y}}
 <div v-drag="greet" id="drag" :style="style">
 //注意这里要通过指令绑定函数将当前元素的位置数据传出来
 </div>
</div>

JS代码:

Vue.directive('drag',//自定义指令     

 {bind:function (el, binding) {
  let oDiv = el; //当前元素
  let self = this; //上下文
  oDiv.onmousedown = function (e) {
   //鼠标按下,计算当前元素距离可视区的距离
   let disX = e.clientX - oDiv.offsetLeft;
   let disY = e.clientY - oDiv.offsetTop;

   document.onmousemove = function (e) {
   //通过事件委托,计算移动的距离 
   let l = e.clientX - disX;
   let t = e.clientY - disY;
   //移动当前元素 
   oDiv.style.left = l + 'px';
   oDiv.style.top = t + 'px';
    //将此时的位置传出去
   binding.value({x:e.pageX,y:e.pageY})
   };
   document.onmouseup = function (e) {
   
   document.onmousemove = null;
   document.onmouseup = null;
   };
  };
  }
 }
 );
 window.onload = function () {
 let vm = new Vue({
  el: '#box',
  data: {
  val: '123',
  style: {
   width: '100px',
   height: '100px',
   background: 'aqua',
   position: 'absolute',
   right: '30px',
   top: 0
  }
  },
  methods:{
  //接受传来的位置数据,并将数据绑定给data下的val
  greet(val){
   vm.val = val;
  }
  } ,
 });
 }

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

Javascript 相关文章推荐
extJs 文本框后面加上说明文字+下拉列表选中值后触发事件
Nov 27 Javascript
jQuery jqgrid 对含特殊字符json 数据的 Java 处理方法
Jan 01 Javascript
Js+Flash实现访问剪切板操作
Nov 20 Javascript
jQuery实现转动随机数抽奖效果的方法
May 21 Javascript
学习javascript面向对象 掌握创建对象的9种方式
Jan 04 Javascript
轻松搞定jQuery.noConflict()
Feb 15 Javascript
Javascript 对cookie操作详解及实例
Dec 29 Javascript
jQuery插件HighCharts绘制2D饼图效果示例【附demo源码下载】
Mar 21 jQuery
JS jQuery使用正则表达式去空字符的简单实现代码
May 20 jQuery
微信小程序 rich-text的使用方法
Aug 04 Javascript
JS操作json对象key、value的常用方法分析
Oct 29 Javascript
小程序中手机号识别的示例
Dec 14 Javascript
vuex操作state对象的实例代码
Apr 25 #Javascript
微信小程序商品详情页的底部弹出框效果
Nov 16 #Javascript
你点的 ES6一些小技巧,请查收
Apr 25 #Javascript
vue 组件使用中的一些细节点
Apr 25 #Javascript
Vue中使用vue-i18插件实现多语言切换功能
Apr 25 #Javascript
vue项目中vue-i18n和element-ui国际化开发实现过程
Apr 25 #Javascript
父组件中vuex方法更新state子组件不能及时更新并渲染的完美解决方法
Apr 25 #Javascript
You might like
php正则替换处理HTML页面的方法
2015/06/17 PHP
PHP中的使用curl发送请求(GET请求和POST请求)
2017/02/08 PHP
ThinkPHP开发--使用七牛云储存
2017/09/14 PHP
php生成word并下载代码实例
2019/03/15 PHP
PHP扩展安装方法步骤解析
2020/11/24 PHP
弹出广告特效(一个IP只弹出一次)的代码
2007/07/27 Javascript
Jquery Autocomplete 结合asp.net使用要点
2010/10/29 Javascript
基于jQuery实现的旋转彩圈实例
2015/06/26 Javascript
js仿黑客帝国字母掉落效果代码分享
2020/11/08 Javascript
JavaScript实现为input与textarea自定义hover,focus效果的方法
2015/08/21 Javascript
初步使用bootstrap快速创建页面
2016/03/03 Javascript
JavaScript 判断一个对象{}是否为空对象的简单方法
2016/10/09 Javascript
利用python分析access日志的方法
2016/10/26 Javascript
js实现本地图片文件拖拽效果
2017/07/18 Javascript
小程序实现留言板
2018/11/02 Javascript
js中Generator函数的深入讲解
2019/04/07 Javascript
vue登录注册实例详解
2019/09/14 Javascript
[02:54]DOTA2英雄基础教程 撼地者
2014/01/14 DOTA
浅谈python中的getattr函数 hasattr函数
2016/06/14 Python
python 队列详解及实例代码
2016/10/18 Python
Python实现压缩和解压缩ZIP文件的方法分析
2017/09/28 Python
python中for用来遍历range函数的方法
2018/06/08 Python
flask-socketio实现WebSocket的方法
2018/07/31 Python
Python实现的登录验证系统完整案例【基于搭建的MVC框架】
2019/04/12 Python
python BlockingScheduler定时任务及其他方式的实现
2019/09/19 Python
Python中zip函数如何使用
2020/06/04 Python
澳大利亚制造的羊皮靴:Original UGG Boots
2017/11/13 全球购物
美国社交购物市场:MassGenie
2019/02/18 全球购物
C#中的验证控件有几种
2014/03/08 面试题
大专生自荐信
2013/10/04 职场文书
文明礼仪演讲稿
2014/05/12 职场文书
关于运动会的广播稿
2014/09/22 职场文书
个人委托书范文
2015/01/28 职场文书
运动会广播稿200字
2015/08/19 职场文书
2015教师个人年度工作总结
2015/10/23 职场文书
Spring整合Mybatis的全过程
2021/06/28 Java/Android