基于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 相关文章推荐
获取页面高度,窗口高度,滚动条高度等参数值getPageSize,getPageScroll
Sep 22 Javascript
再谈ie和firefox下的document.all属性
Oct 21 Javascript
解析js原生方法创建表格效率测试
Jul 08 Javascript
IE中JS跳转丢失referrer问题的2个解决方法
Jul 18 Javascript
c#+jquery实现获取radio和checkbox的值
Sep 12 Javascript
js 左右悬浮对联广告代码示例
Dec 12 Javascript
JS实现的多张图片轮流播放幻灯片效果
Jul 22 Javascript
JS+CSS3模拟溢出滚动效果
Aug 12 Javascript
详解js中Array的方法及技巧
Sep 12 Javascript
小程序getLocation需要在app.json中声明permission字段
Apr 04 Javascript
在element-ui的select下拉框加上滚动加载
Apr 18 Javascript
node koa2 ssr项目搭建的方法步骤
Dec 11 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初学者头痛的十四个问题
2006/07/12 PHP
php中经典方法实现判断多维数组是否为空
2011/10/23 PHP
写一段简单的PHP建立文件夹代码
2015/01/06 PHP
PHP的引用详解
2015/02/22 PHP
php获取百度收录、百度热词及百度快照的方法
2015/04/02 PHP
jQuery建立一个按字母顺序排列的友好页面索引(兼容IE6/7/8)
2013/02/26 Javascript
nodejs教程 安装express及配置app.js文件的详细步骤
2013/05/11 NodeJs
JS实现简易图片轮播效果的方法
2015/03/25 Javascript
浅谈JavaScript 的执行顺序
2015/08/07 Javascript
JS操作COOKIE实现备忘记录的方法
2016/04/01 Javascript
jquery判断页面网址是否有效的两种方法
2016/12/11 Javascript
Jquery Easyui搜索框组件SearchBox使用详解(19)
2016/12/17 Javascript
js实现抽奖效果
2017/03/27 Javascript
关于定制FileField中的上传文件名称问题
2017/08/22 Javascript
vue-cli项目无法用本机IP访问的解决方法
2018/09/20 Javascript
JS实现获取数组中最大值或最小值功能示例
2019/03/02 Javascript
如何为你的JS项目添加智能提示与类型检查详解
2019/03/12 Javascript
javascript中的this作用域详解
2019/07/15 Javascript
基于JavaScript 实现拖放功能
2019/09/12 Javascript
深入讨论Python函数的参数的默认值所引发的问题的原因
2015/03/30 Python
Python中for循环和while循环的基本使用方法
2015/08/21 Python
Python连接mysql数据库的正确姿势
2016/02/03 Python
python实现Excel文件转换为TXT文件
2019/04/28 Python
简单了解python PEP的一些知识
2019/07/13 Python
Python使用qrcode二维码库生成二维码方法详解
2020/02/17 Python
python简单实现最大似然估计&amp;scipy库的使用详解
2020/04/15 Python
ECHT官方网站:男女健身服
2020/02/14 全球购物
为什么使用接口?
2014/08/13 面试题
生产现场工艺工程师岗位职责
2013/11/28 职场文书
教师的实习自我鉴定
2013/12/17 职场文书
新农村建设标语
2014/06/24 职场文书
治庸问责心得体会
2014/09/12 职场文书
三年级学生评语大全
2014/12/26 职场文书
信访工作个人总结
2015/03/03 职场文书
教师纪律作风整顿心得体会
2016/01/23 职场文书
Windows下用Nginx配置https服务器及反向代理的问题
2021/09/25 Servers