vue 实现左右拖拽元素并且不超过他的父元素的宽度


Posted in Javascript onNovember 30, 2018

话不多说,先上需求图

vue 实现左右拖拽元素并且不超过他的父元素的宽度

需求:这是一个音频播放的组件,隐藏audio样式,用js调用脚本方法实现,目前功能基本实现,但是有个问题,图中共有一根绿色的begin线和红色的end线,使用这两根线切割音频,意思就是拖拽获取拖拽后的刻度传给后端,为此,去学习了一下拖拽,
上代码:

html部分

<!--红绿线-->
     <div class="begin-end-line">
      <img :src="lineGreen" alt="" class="line bg-line" id="green" draggable="true" @mousedown="moveGreen">
      <img :src="lineRed" alt="" class="line end-line" id="red" draggable="true" @mousedown="moveRed">
     </div>

methods部分

moveGreen(e) {
    let odiv = e.target;    //获取目标元素
    //算出鼠标相对元素的位置
    let disX = e.clientX - odiv.offsetLeft;
    document.onmousemove = (e)=>{    //鼠标按下并移动的事件
     //用鼠标的位置减去鼠标相对元素的位置,得到元素的位置
     let left = e.clientX - disX;
     if(left<-6){
      return left=-6
     }
     if (left>684){
      return left=684
     }
     console.log(left);
     //绑定元素位置到positionX和positionY上面
     this.positionX = top;

     //移动当前元素
     odiv.style.left = left + 'px';
    };
    document.onmouseup = (e) => {
     document.onmousemove = null;
     document.onmouseup = null;
    };
   }

现在就可以自由的拖动了

let left = e.clientX - disX;
     if(left<-6){
      return left=-6
     }
     if (left>684){
      return left=684
     }
     console.log(left);

这段代码我解释一下,此段代码就是给拖动的时候左右做限制,让拖动元素不超过父元素,left<-6是限制左边,left>684限制右边,注意一点就是,父元素为相对定位,拖拽元素为绝对定位
上个拖拽之后效果图(规定只能左右移动)

vue 实现左右拖拽元素并且不超过他的父元素的宽度

总结

以上所述是小编给大家介绍的vue 实现左右拖拽元素并且不超过他的父元素的宽度,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
jQuery学习笔记之jQuery的动画
Dec 22 Javascript
ejs v9 javascript模板系统
Mar 21 Javascript
Jquery 切换不同图片示例代码
Dec 05 Javascript
批量修改标签css样式以input标签为例
Jul 31 Javascript
node.js中Socket.IO的进阶使用技巧
Nov 04 Javascript
JavaScript异步加载浅析
Dec 28 Javascript
JQuery日期插件datepicker的使用方法
Mar 03 Javascript
Node.js插件安装图文教程
May 06 Javascript
常用的几个JQuery代码片段
Mar 13 Javascript
JavaScript装饰器函数(Decorator)实例详解
Mar 30 Javascript
vue组件之Alert的实现代码
Oct 17 Javascript
vue 内联样式style中的background用法说明
Aug 05 Javascript
微信小程序实现保存图片到相册功能
Nov 30 #Javascript
js canvas实现写字动画效果
Nov 30 #Javascript
webpack打包多页面的方法
Nov 30 #Javascript
Element Table的row-class-name无效与动态高亮显示选中行背景色
Nov 30 #Javascript
VUE2.0+ElementUI2.0表格el-table实现表头扩展el-tooltip
Nov 30 #Javascript
VUE2.0+ElementUI2.0表格el-table循环动态列渲染的写法详解
Nov 30 #Javascript
js字符串倒序的实例代码
Nov 30 #Javascript
You might like
Notice: Trying to get property of non-object problem(PHP)解决办法
2012/03/11 PHP
php防止SQL注入详解及防范
2013/11/12 PHP
在 PHP 和 Laravel 中使用 Traits的方法
2019/11/13 PHP
关于Laravel参数验证的一些疑与惑
2019/11/19 PHP
php经典趣味算法实例代码
2020/01/21 PHP
PHP pthreads v3在centos7平台下的安装与配置操作方法
2020/02/21 PHP
js身份证判断方法支持15位和18位
2014/03/18 Javascript
jquery使用jxl插件导出excel示例
2014/04/14 Javascript
Javascript 读取操作Sql中的Xml字段
2014/10/09 Javascript
jquery获取radio值(单选组radio)
2014/10/16 Javascript
浅析javascript中函数声明和函数表达式的区别
2015/02/15 Javascript
JS实现很酷的EMAIL地址添加功能实例
2015/02/28 Javascript
给before和after伪元素设置js效果的方法
2015/12/04 Javascript
BootStrap实现树形目录组件代码详解
2016/06/21 Javascript
Bootstrap 设置datetimepicker在屏幕上面弹出设置方法
2017/03/21 Javascript
webpack处理 css\less\sass 样式的方法
2017/08/21 Javascript
浅谈react-router@4.0 使用方法和源码分析
2019/06/04 Javascript
python实现代码行数统计示例分享
2014/02/10 Python
pycham查看程序执行的时间方法
2018/11/29 Python
Django框架设置cookies与获取cookies操作详解
2019/05/27 Python
python开发实例之python使用Websocket库开发简单聊天工具实例详解(python+Websocket+JS)
2020/03/18 Python
Python调用shell cmd方法代码示例解析
2020/06/18 Python
世界领先的豪华床上用品供应商之一:Bedeck Home
2019/03/18 全球购物
Linux中如何设置Java环境变量(Ubuntu)
2016/07/24 面试题
经典c++面试题二
2015/08/14 面试题
幼儿园中秋节活动方案
2014/02/06 职场文书
关于运动会的口号
2014/06/07 职场文书
文明寝室标语
2014/06/13 职场文书
专科生就业求职信
2014/06/22 职场文书
小学生2014国庆节演讲稿:祖国在我心中
2014/09/21 职场文书
党员检讨书
2014/10/13 职场文书
房屋产权共有协议书范本
2014/11/03 职场文书
2014年大学教师工作总结
2014/12/02 职场文书
春风化雨观后感
2015/06/11 职场文书
家庭聚会祝酒词
2015/08/11 职场文书
幼师必备:幼儿园期末教师评语50条
2019/11/01 职场文书