基于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中万恶的function实例分析
May 25 Javascript
JavaScript自定义DateDiff函数(兼容所有浏览器)
Mar 01 Javascript
JQuery入门——用one()方法绑定事件处理函数(仅触发一次)
Feb 05 Javascript
原生js事件的添加和删除的封装
Jul 01 Javascript
Javascript 6里的4个新语法
Aug 25 Javascript
jQuery实现复制到粘贴板功能
Feb 11 Javascript
简易Vue评论框架的实现(父组件的实现)
Jan 08 Javascript
jQuery+PHP实现上传裁剪图片
Jun 29 jQuery
Vue CLI2升级至Vue CLI3的方法步骤
May 20 Javascript
Node 搭建一个静态资源服务器的实现
May 20 Javascript
react中Suspense的使用详解
Sep 01 Javascript
Javascript之datagrid查询详解
Sep 15 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 分页分组类
2009/12/10 PHP
解析关于wamp启动是80端口被占用的问题
2013/06/21 PHP
如何在php中正确的使用json
2013/08/06 PHP
ThinkPHP 404页面的设置方法
2015/01/14 PHP
php随机抽奖实例分析
2015/03/04 PHP
PHP实现的蚂蚁爬杆路径算法代码
2015/12/03 PHP
postfixadmin忘记密码后的修改密码方法详解
2016/07/20 PHP
php批量删除操作代码分享
2017/02/26 PHP
laravel 5.3 单用户登录简单实现方法
2019/10/14 PHP
PHP设计模式之组合模式定义与应用示例
2020/02/01 PHP
取得父标签
2006/11/14 Javascript
鼠标经过显示二级菜单js特效
2013/08/13 Javascript
如何通过javascript操作web控件的自定义属性
2013/11/25 Javascript
使用JavaScript 实现的人脸检测
2015/03/24 Javascript
JQuery日期插件datepicker的使用方法
2016/03/03 Javascript
easyUI combobox实现联动效果
2017/01/17 Javascript
简单了解JavaScript中的执行上下文和堆栈
2019/06/24 Javascript
JS实现打字游戏
2019/12/17 Javascript
js实现上传按钮并显示缩略图小轮子
2020/05/04 Javascript
[24:42]VP vs TNC Supermajor小组赛B组 BO3 第三场 6.2
2018/06/03 DOTA
[38:39]KG vs Mineski 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Python中函数及默认参数的定义与调用操作实例分析
2017/07/25 Python
kaggle+mnist实现手写字体识别
2018/07/26 Python
Python 字符串换行的多种方式
2018/09/06 Python
python实现自动登录后台管理系统
2018/10/18 Python
一文了解python 3 字符串格式化 F-string 用法
2020/03/04 Python
分享PyCharm最新激活码(真永久激活方法)不用每月找安装参数或最新激活码了
2020/12/27 Python
CSS3 media queries + jQuery实现响应式导航
2016/09/30 HTML / CSS
COS美国官网:知名服装品牌
2019/04/08 全球购物
六年级数学教学反思
2014/02/03 职场文书
护士试用期自我鉴定
2014/02/08 职场文书
行政工作个人的自我评价
2014/02/13 职场文书
印刷技术专业自荐信
2014/09/18 职场文书
在教室放鞭炮的检讨书
2014/09/28 职场文书
机关单位2016年法制宣传日活动总结
2016/04/01 职场文书
基于Redis的List实现特价商品列表功能
2021/08/30 Redis