基于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 相关文章推荐
点击弹出层外区域关闭弹出层jquery特效示例
Aug 25 Javascript
js获取事件源及触发该事件的对象
Oct 24 Javascript
js操纵dom生成下拉列表框的方法
Feb 24 Javascript
30个经典的jQuery代码开发技巧
Dec 15 Javascript
JavaScript实现按照指定长度为数字前面补零输出的方法
Mar 19 Javascript
jQuery实现两款有动画功能的导航菜单代码
Sep 16 Javascript
Js 获取、判断浏览器版本信息的简单方法
Aug 08 Javascript
JS中使用mailto实现将用户在网页中输入的内容传递到本地邮件客户端
Oct 08 Javascript
jquery实现图片上传前本地预览
Apr 28 jQuery
yarn的使用与升级Node.js的方法详解
Jun 04 Javascript
vue.js计算属性computed用法实例分析
Jul 06 Javascript
es6函数之rest参数用法实例分析
Apr 18 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
绿山咖啡和蓝山咖啡
2021/03/04 新手入门
php实现scws中文分词搜索的方法
2015/12/25 PHP
漂亮的thinkphp 跳转页封装示例
2019/10/16 PHP
设定php简写功能的方法
2019/11/28 PHP
关于PHP5.6+版本“No input file specified”问题的解决
2019/12/11 PHP
php操作redis常见方法示例【key与value操作】
2020/04/14 PHP
PHP 实现 WebSocket 协议原理与应用详解
2020/04/22 PHP
js选项卡的实现方法
2015/02/09 Javascript
基于jQuery+Cookie实现的防止刷新的在线考试倒计时
2015/06/19 Javascript
jQuery实现仿微软首页感应鼠标变化滑动窗口效果
2015/10/08 Javascript
原生js和jquery分别实现横向导航菜单效果
2016/05/13 Javascript
用JS动态设置CSS样式常见方法小结(推荐)
2016/11/10 Javascript
基于Vuejs和Element的注册插件的编写方法
2017/07/03 Javascript
Angular之toDoList的实现代码示例
2017/12/02 Javascript
聊聊JS动画库 Velocity.js的使用
2018/03/13 Javascript
基于Vue组件化的日期联动选择器功能的实现代码
2018/11/30 Javascript
Vue Echarts实现可视化世界地图代码实例
2019/05/07 Javascript
Vue前端项目部署IIS的实现
2020/01/06 Javascript
Python实现将绝对URL替换成相对URL的方法
2015/06/28 Python
Python实现批量将word转html并将html内容发布至网站的方法
2015/07/14 Python
python从入门到精通(DAY 3)
2015/12/20 Python
python学习之编写查询ip程序
2016/02/27 Python
Python协程的用法和例子详解
2017/09/09 Python
详解python3中tkinter知识点
2018/06/21 Python
python使用pygame框架实现推箱子游戏
2018/11/20 Python
pandas把所有大于0的数设置为1的方法
2019/01/26 Python
如何通过python检查文件是否被占用
2020/12/18 Python
介绍一下XMLHttpRequest对象
2012/02/12 面试题
电子商务专业个人的自我评价
2013/11/19 职场文书
酒吧员工的岗位职责
2013/11/26 职场文书
护理学专业推荐信
2013/12/03 职场文书
网管求职信
2014/03/03 职场文书
少先队辅导员事迹材料
2014/12/24 职场文书
2015年医务科工作总结范文
2015/05/26 职场文书
清明节主题班会
2015/08/14 职场文书
营销策划分析:怎么策划才能更好销量产品?
2019/09/04 职场文书