基于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 相关文章推荐
解析img图片没找到onerror事件 Stack overflow at line: 0
Dec 23 Javascript
jQuery aminate方法定位到页面具体位置
Dec 26 Javascript
跟我学习javascript的this关键字
May 28 Javascript
Javascript+CSS3实现进度条效果
Oct 28 Javascript
JavaScript原生节点操作小结
Jan 17 Javascript
js原生Ajax的封装和原理详解
Mar 11 Javascript
JavaScript关联数组用法分析【概念、定义、遍历】
Mar 15 Javascript
Vue.2.0.5过渡效果使用技巧
Mar 16 Javascript
vue移动端实现下拉刷新
Apr 22 Javascript
Vue press 支持图片放大功能的实例代码
Nov 09 Javascript
Vue CLI3创建项目部署到Tomcat 使用ngrok映射到外网
May 16 Javascript
小程序实现背景音乐播放和暂停
Jun 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
第三节--定义一个类
2006/11/16 PHP
PHP 缓存实现代码及详细注释
2010/05/16 PHP
php编写的简单页面跳转功能实现代码
2013/11/27 PHP
php mysql获取表字段名称和字段信息的三种方法
2016/11/13 PHP
php 从一个数组中随机的取出若干个不同的数实例
2016/12/31 PHP
PHP反射机制原理与用法详解
2017/02/15 PHP
JavaScript 精粹读书笔记(1,2)
2010/02/07 Javascript
基于jquery+thickbox仿校内登录注册框
2010/06/07 Javascript
鼠标事件延时切换插件
2011/03/12 Javascript
JavaScript实现QueryString获取GET参数的方法
2013/07/02 Javascript
jQuery中nextUntil()方法用法实例
2015/01/07 Javascript
js enter键激发事件实例代码
2016/08/17 Javascript
Javascript日期格式化format函数的使用方法
2016/08/30 Javascript
Angular2学习笔记——详解NgModule模块
2016/12/02 Javascript
JavaScript实现点击出现图片并统计点击次数功能示例
2018/07/23 Javascript
在layui中对table中的数据进行判断(0、1)转换为提示信息的方法
2019/09/28 Javascript
JS组件库AlloyTouch实现图片轮播过程解析
2020/05/29 Javascript
使用Python编写一个在Linux下实现截图分享的脚本的教程
2015/04/24 Python
python实现从ftp服务器下载文件的方法
2015/04/30 Python
windows10系统中安装python3.x+scrapy教程
2016/11/08 Python
用matplotlib画等高线图详解
2017/12/14 Python
详解python读取image
2019/04/03 Python
pandas DataFrame 行列索引及值的获取的方法
2019/07/02 Python
Python脚本利用adb进行手机控制的方法
2019/07/08 Python
在Pytorch中计算卷积方法的区别详解(conv2d的区别)
2020/01/03 Python
python学生管理系统的实现
2020/04/05 Python
详解CSS中iconfont的使用
2015/08/04 HTML / CSS
Html5让容器充满屏幕高度或自适应剩余高度的布局实现
2020/05/14 HTML / CSS
关于递归的一道.NET面试题
2013/05/12 面试题
工作会议主持词
2014/03/17 职场文书
2014党员干部四风问题对照检查材料思想汇报
2014/09/24 职场文书
书法社团活动总结
2015/05/07 职场文书
撤诉申请书法院范本
2015/05/18 职场文书
vue-router中hash模式与history模式的区别
2021/06/23 Vue.js
SpringBoot整合Redis入门之缓存数据的方法
2021/11/17 Redis
sql server偶发出现死锁的解决方法
2022/04/10 SQL Server