基于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绑定事件this指向发生改变的问题解决方法
Apr 23 Javascript
js获取当前路径的简单示例代码
Jan 08 Javascript
JS数组(Array)处理函数整理
Dec 07 Javascript
jquery仿百度百科底部浮动导航特效
Aug 08 Javascript
全面解析bootstrap格子布局
May 22 Javascript
jQuery向父辈遍历的简单方法
Sep 18 Javascript
JavaScript 是什么意思
Sep 22 Javascript
vue.js中created方法作用
Mar 30 Javascript
微信小程序中遇到的iOS兼容性问题小结
Nov 14 Javascript
详解vue使用插槽分发内容slot的用法
Mar 28 Javascript
使用easyui从servlet传递json数据到前端页面的两种方法
Sep 05 Javascript
JsonProperty 的使用方法详解
Oct 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数据入库前清理 注意php intval与mysql的int取值范围不同
2010/12/12 PHP
php number_format() 函数通过千位分组来格式化数字的实现代码
2013/08/06 PHP
用js判断用户浏览器是否是XP SP2的IE6
2007/03/08 Javascript
javascript 写类方式之五
2009/07/05 Javascript
JS对象转换为Jquery对象示例
2014/01/26 Javascript
jquery图片轮播插件仿支付宝2013版全屏图片幻灯片
2014/04/03 Javascript
使用JavaScript实现弹出层效果的简单实例
2016/05/31 Javascript
jQuery动态改变多行文本框高度的方法
2016/09/07 Javascript
12 款 JS 代码测试必备工具(翻译)
2016/12/13 Javascript
vue.js实现请求数据的方法示例
2017/02/07 Javascript
Vuejs实现带样式的单文件组件新方法
2017/05/02 Javascript
canvas轨迹回放功能实现
2017/12/20 Javascript
js数组常用最重要的方法
2018/02/04 Javascript
vue this.reload 方法 配置
2018/09/12 Javascript
仿iPhone通讯录制作小程序自定义选择组件的实现
2019/05/23 Javascript
jquery.pager.js分页实现详解
2019/07/29 jQuery
JS图片懒加载技术实现过程解析
2020/07/27 Javascript
[01:51]DAC趣味视频-如何成为职业选手.mp4
2017/04/02 DOTA
树莓派中python获取GY-85九轴模块信息示例
2013/12/05 Python
python模拟登录百度代码分享(获取百度贴吧等级)
2013/12/27 Python
Python Tkinter简单布局实例教程
2014/09/03 Python
Python制作刷网页流量工具
2017/04/23 Python
python中reduce()函数的使用方法示例
2017/09/29 Python
浅析Python四种数据类型
2018/09/26 Python
Python动态参数/命名空间/函数嵌套/global和nonlocal
2019/05/29 Python
python爬虫 正则表达式解析
2019/09/28 Python
使用Python操作ArangoDB的方法步骤
2020/02/02 Python
基于Python共轭梯度法与最速下降法之间的对比
2020/04/02 Python
python statsmodel的使用
2020/12/21 Python
Html5元素及基本语法详解
2016/08/02 HTML / CSS
100%法国制造的游戏和玩具:Les Jouets Français
2021/03/02 全球购物
大学四年学习的自我评价分享
2013/12/09 职场文书
班会关于环保演讲稿
2013/12/29 职场文书
心理学专业大学生职业生涯规划范文
2014/02/19 职场文书
解决jupyter notebook图片显示模糊和保存清晰图片的操作
2021/04/24 Python
python+pyhyper实现识别图片中的车牌号思路详解
2022/12/24 Python