基于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 相关文章推荐
用js实现层随着内容大小动态渐变改变 推荐
Dec 19 Javascript
js+html5操作sqlite数据库的方法
Feb 02 Javascript
详解BootStrap中Affix控件的使用及保持布局的美观的方法
Jul 08 Javascript
Node.js实现兼容IE789的文件上传进度条
Sep 02 Javascript
基于JavaScript实现屏幕滚动效果
Jan 18 Javascript
微信小程序 滚动到某个位置添加class效果实现代码
Apr 19 Javascript
vue.js数据绑定的方法(单向、双向和一次性绑定)
Jul 13 Javascript
jQuery EasyUI 折叠面板accordion的使用实例(分享)
Dec 25 jQuery
ejsExcel模板在Vue.js项目中的实际运用
Jan 27 Javascript
javascript中undefined的本质解析
Jul 31 Javascript
关于Layui Table隐藏列问题
Sep 16 Javascript
微信小程序vant弹窗组件的实现方式
Feb 21 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 set_include_path函数设置 include_path 配置选项
2016/10/30 PHP
Zend Framework动作控制器用法示例
2016/12/09 PHP
PHP cookie与session会话基本用法实例分析
2019/11/18 PHP
THINKPHP5.1 Config的配置与获取详解
2020/06/08 PHP
键盘 keycode的值 javascript时触发事件时很有用的要素
2009/11/02 Javascript
JavaScript判断一个URL链接是否有效的实现方法
2011/10/08 Javascript
javascript复制粘贴与clipboardData的使用
2014/10/16 Javascript
windows8.1+iis8.5下安装node.js开发环境
2014/12/12 Javascript
jQuery插件pagination实现分页特效
2015/04/12 Javascript
基于jQuery实现仿百度首页选项卡切换效果
2016/05/29 Javascript
Javascript typeof与instanceof的区别
2016/10/18 Javascript
JavaScript BASE64算法实现(完美解决中文乱码)
2017/01/10 Javascript
SVG描边动画
2017/02/23 Javascript
Bootstrap Table实现定时刷新数据的方法
2018/08/13 Javascript
webpack实现一个行内样式px转vw的loader示例
2018/09/13 Javascript
Vuerouter的beforeEach与afterEach钩子函数的区别
2018/12/26 Javascript
微信小程序-API接口安全详解
2019/07/16 Javascript
微信小程序 点击切换样式scroll-view实现代码实例
2019/10/11 Javascript
ES6使用 Array.includes 处理多重条件用法实例分析
2020/03/02 Javascript
微信小程序间使用navigator跳转传值问题实例分析
2020/03/27 Javascript
[50:48]LGD vs CHAOS 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python的动态重新封装的教程
2015/04/11 Python
解决python升级引起的pip执行错误的问题
2018/06/12 Python
python实现微信小程序自动回复
2018/09/10 Python
python 实现图片上传接口开发 并生成可以访问的图片url
2019/12/18 Python
pytorch 改变tensor尺寸的实现
2020/01/03 Python
python的flask框架难学吗
2020/07/31 Python
西尔斯百货官网:Sears
2016/09/06 全球购物
白俄罗斯女装和针织品网上商店:Presli.by
2019/10/13 全球购物
英语硕士生求职简历的自我评价
2013/10/15 职场文书
老公给老婆的道歉信
2014/01/10 职场文书
考试作弊万能检讨书
2014/10/19 职场文书
护士医德考评自我评价
2015/03/03 职场文书
2015年药房工作总结
2015/04/25 职场文书
2015年政务公开工作总结
2015/05/19 职场文书
工作一年自我鉴定
2019/06/20 职场文书