基于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 相关文章推荐
使用户点击后退按钮使效三行代码
Jul 07 Javascript
网页右下角弹出窗体实现代码
Jun 05 Javascript
AngularJS单选框及多选框实现双向动态绑定
Jan 13 Javascript
JavaScript的new date等日期函数在safari中遇到的坑
Oct 24 Javascript
BootStrap下的弹出框加载select2框架失败的解决方法
Aug 31 Javascript
layui表格checkbox选择全选样式及功能的实例
Mar 07 Javascript
详解Vue文档中几个易忽视部分的剖析
Mar 24 Javascript
JavaScript页面倒计时功能完整示例
May 15 Javascript
150行Node.js实现的dns代理工具
Aug 02 Javascript
详解Nuxt内导航栏的两种实现方式
Apr 16 Javascript
微信h5静默和非静默授权获取用户openId的方法和步骤
Jun 08 Javascript
javascript之Object.assign()的痛点分析
Mar 03 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/12/25 PHP
PHP连接局域网MYSQL数据库的简单实例
2013/08/26 PHP
Yii2压缩PHP中模板代码的输出问题
2018/08/28 PHP
javascript 当前日期加(天、周、月、年)
2009/08/09 Javascript
JQuery 中几个类选择器的简单使用介绍
2013/03/14 Javascript
jquery实现TAB选项卡鼠标经过带延迟效果的方法
2015/07/27 Javascript
jquery实现点击其他区域时隐藏下拉div和遮罩层的方法
2015/12/23 Javascript
微信小程序 常用工具类详解及实例
2017/02/15 Javascript
React Native 真机断点调试+跨域资源加载出错问题的解决方法
2018/01/18 Javascript
jQuery实现获取form表单内容及绑定数据到form表单操作分析
2018/07/03 jQuery
JS加密插件CryptoJS实现的DES加密示例
2018/08/16 Javascript
在vue中读取本地Json文件的方法
2018/09/06 Javascript
5分钟教你用nodeJS手写一个mock数据服务器的方法
2019/09/10 NodeJs
微信小程序实现带放大效果的轮播图
2020/05/26 Javascript
nodeJS与MySQL实现分页数据以及倒序数据
2020/06/05 NodeJs
[44:51]2018DOTA2亚洲邀请赛 4.4 淘汰赛 VP vs Liquid 第二场
2018/04/05 DOTA
Python工程师面试题 与Python Web相关
2016/01/14 Python
Python的Twisted框架上手前所必须了解的异步编程思想
2016/05/25 Python
浅析Python中的赋值和深浅拷贝
2017/08/15 Python
Python基于回溯法子集树模板实现8皇后问题
2017/09/01 Python
Python基于回溯法解决01背包问题实例
2017/12/06 Python
python读取大文件越来越慢的原因与解决
2019/08/08 Python
python中元组的用法整理
2020/06/15 Python
Python3读写ini配置文件的示例
2020/11/06 Python
通过实例解析python and和or使用方法
2020/11/14 Python
微软台湾官方网站:Microsoft台湾
2018/08/15 全球购物
彪马英国官网:PUMA英国
2019/02/11 全球购物
九华山导游词
2015/02/03 职场文书
项目验收申请报告
2015/05/15 职场文书
城南旧事读书笔记
2015/06/29 职场文书
PySwarms(Python粒子群优化工具包)的使用:GlobalBestPSO例子解析
2021/04/05 Python
mysql字符串截取函数小结
2021/04/05 MySQL
Python+Appium自动化测试的实战
2021/06/30 Python
Python图片验证码降噪和8邻域降噪
2021/08/30 Python
python实现会员信息管理系统(List)
2022/03/18 Python
Python之matplotlib绘制折线图
2022/04/13 Python