vue模块拖拽实现示例代码
网络编程 2021-07-04 15:50www.168986.cn编程入门
这篇文章主要介绍了vue模块拖拽实现示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们狼蚁网站SEO优化随着长沙网络推广来一起学习学习吧
正巧在之前面试中遇到问实现拖拽效果
当时面试的时候简单回答了实现的方式与逻辑。
现在闲来无事,把这个东西实现了一下。
原理很简单,写的很方便。
数据驱动,建立一个数组,数组初始长度为1
拖动触发时,添加一个对象到数组中,拖动的是下标为0的对象,新建的还在原来位置放着,等待下次拖动。
话不多说,上代码
<template> <div class="view"> <div class="x" @mousedown="move($event,index)" v-for="(x,index) in i"> <span v-if="index+1 !== i.length">{{index+1}}</span> <input v-model="x.input"> </div> {{i}} </div> </template> <script> export default { name: "index", data(){ return{ positionX:0, positionY:0, i:[ {input:''} ] } }, methods:{ move(e,x){ let odiv = e.target; //获取目标元素 //算出鼠标相对元素的位置 let disX = e.clientX - odiv.offsetLeft; let disY = e.clientY - odiv.offsetTop; let flag = true; document.onmousemove = (e)=>{ //鼠标按下并移动的事件 if(flag && x === this.i.length-1){ flag = false; this.i.push({input:''}) } //用鼠标的位置减去鼠标相对元素的位置,得到元素的位置 let left = e.clientX - disX; let = e.clientY - disY; //绑定元素位置到positionX和positionY上面 this.positionX = ; this.positionY = left; //移动当前元素 odiv.style.left = left + 'px'; odiv.style. = + 'px'; }; document.onmouseup = (e) => { document.onmousemove = null; document.onmouseup = null; }; } } } </script> <style scoped lang="less"> .view{ position: absolute; : 0; bottom: 0; left: 0; right: 0; background: #f8f8f8; .x{ width: 250px; height: 50px; : 50px; left: 10px; position: absolute; background: red; color: yellow; } } </style>
一个简单的demo,后续用的话可以再丰富,比如以拖动长度来触发事件。
input可以换成子组件。这里提供分享一个底层的实现方式
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持狼蚁SEO。
编程语言
- 甘肃哪有关键词排名优化购买方式有哪些
- 甘肃SEO如何做网站优化
- 河南seo关键词优化怎么做电话营销
- 北京SEO优化如何做QQ群营销
- 来宾百度关键词排名:提升您网站曝光率的关键
- 卢龙关键词优化:提升您网站排名的策略与技巧
- 山东网站优化的注意事项有哪些
- 四川整站优化怎样提升在搜索引擎中的排名
- 疏附整站优化:提升网站性能与用户体验的全新
- 海南seo主要做什么工作售后服务要做到哪些
- 荣昌百度网站优化:提升您网站的搜索引擎排名
- 河北seo网站排名关键词优化如何做SEO
- 江西优化关键词排名推广售后保障一般有哪些
- 古浪SEO优化:提升你的网站可见性
- 西藏网站排名优化怎么把网站排名在百度首页
- 如何提升阳东百度快照排名:详尽指南