基于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 相关文章推荐
深入理解JavaScript系列(6):S.O.L.I.D五大原则之单一职责SRP
Jan 15 Javascript
js判断手机号运营商的方法
Oct 23 Javascript
js实现图片轮播效果
Dec 19 Javascript
javascript实现无法关闭的弹框
Nov 27 Javascript
JS实现最简单的冒泡排序算法
Feb 15 Javascript
node.js中fs.stat与fs.fstat的区别详解
Jun 01 Javascript
浅谈vue,angular,react数据双向绑定原理分析
Nov 28 Javascript
jQuery实现新闻播报滚动及淡入淡出效果示例
Mar 23 jQuery
vue+element创建动态的form表单及动态生成表格的行和列
May 20 Javascript
基于Vue中使用节流Lodash throttle详解
Oct 30 Javascript
微信小程序开发搜索功能实现(前端+后端+数据库)
Mar 04 Javascript
微信小程序使用GoEasy实现websocket实时通讯
May 19 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
颠覆常识!无色透明的咖啡诞生了(中日双语)
2021/03/03 咖啡文化
php adodb连接带密码access数据库实例,测试成功
2008/05/14 PHP
探讨PHP使用eAccelerator的API开发详解
2013/06/09 PHP
php缓冲 output_buffering和ob_start使用介绍
2014/01/30 PHP
PHP面向对象程序设计OOP继承用法入门示例
2016/12/27 PHP
ThinkPHP框架结合Ajax实现用户名校验功能示例
2019/07/03 PHP
input 高级限制级用法
2009/03/26 Javascript
jQuery Validation插件remote验证方式的Bug解决
2010/07/01 Javascript
javascript 利用Image对象实现的埋点(某处的点击数)统计
2012/12/28 Javascript
JQuery为textarea添加maxlength属性并且兼容IE
2013/04/25 Javascript
JS正则表达式验证数字代码
2014/01/28 Javascript
引入autocomplete组件时JS报未结束字符串常量错误
2014/03/19 Javascript
基于jQuery+Cookie实现的防止刷新的在线考试倒计时
2015/06/19 Javascript
JavaScript实现图片轮播的方法
2015/07/31 Javascript
基于jQuery实现动态数字展示效果
2015/08/12 Javascript
浅谈Nodejs观察者模式
2015/10/13 NodeJs
微信小程序 action-sheet底部菜单详解
2016/10/27 Javascript
Vue组件中slot的用法
2018/01/30 Javascript
小程序显示弹窗时禁止下层的内容滚动实现方法
2019/03/20 Javascript
JavaScript制作3D旋转相册
2020/08/02 Javascript
JavaScript遍历数组的方法代码实例
2020/01/14 Javascript
[51:53]完美世界DOTA2联赛决赛日 Inki vs LBZS 第二场 11.08
2020/11/10 DOTA
python使用fcntl模块实现程序加锁功能示例
2017/06/23 Python
基于python中的TCP及UDP(详解)
2017/11/06 Python
django 使用 request 获取浏览器发送的参数示例代码
2018/06/11 Python
python2 中 unicode 和 str 之间的转换及与python3 str 的区别
2019/07/25 Python
python中必要的名词解释
2019/11/20 Python
行政助理求职自荐信
2013/10/26 职场文书
公司新年寄语
2014/04/04 职场文书
教育合作协议范本
2014/10/17 职场文书
锦旗赠语
2015/06/23 职场文书
关于国庆节的广播稿
2015/08/19 职场文书
写给汽车4S店的创业计划书,拿来即用!
2019/08/09 职场文书
MySQL获取所有分类的前N条记录
2021/05/07 MySQL
Python闭包的定义和使用方法
2022/04/11 Python
nginx之内存池的实现
2022/06/28 Servers