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 相关文章推荐
ECMAScript 基础知识
Jun 29 Javascript
Exjs 入门篇
Apr 07 Javascript
jquery 提示信息显示后自动消失的具体实现
Dec 18 Javascript
FireBug 调试JS入门教程 如何调试JS
Dec 23 Javascript
jQuery 获取/设置/删除DOM元素的属性以a元素为例
May 23 Javascript
浅谈javascript中的instanceof和typeof
Feb 27 Javascript
jQuery+json实现动态创建复杂表格table的方法
Oct 25 Javascript
原生js实现弹出层登录拖拽功能
Dec 05 Javascript
Node.js和Express简单入门介绍
Mar 24 Javascript
利用express启动一个server服务的方法
Sep 17 Javascript
开发Vue树形组件的示例代码
Dec 21 Javascript
jQuery实现数字自动增加或者减少的动画效果示例
Dec 11 jQuery
微信小程序实现保存图片到相册功能
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
可定制的PHP缩略图生成程式(需要GD库支持)
2007/03/06 PHP
PHP strtok()函数的优点分析
2010/03/02 PHP
从PHP的源码中深入了解stdClass类
2014/04/18 PHP
php读取flash文件高宽帧数背景颜色的方法
2015/01/06 PHP
php实现window平台的checkdnsrr函数
2015/05/27 PHP
javascript 动态添加事件代码
2008/11/30 Javascript
使用Microsoft Ajax Minifier减小JavaScript文件大小的方法
2010/04/01 Javascript
关于JavaScript中var声明变量作用域的推断
2010/12/16 Javascript
使用Post提交时须将空格转换成加号的解释
2013/01/14 Javascript
jquery显示隐藏input对象
2014/07/21 Javascript
基于jQuery实现拖拽图标到回收站并删除功能
2015/11/25 Javascript
老生常谈遮罩层 滚动条的问题
2016/04/29 Javascript
javascript表单控件实例讲解
2016/09/13 Javascript
JS搜狐面试题分析
2016/12/16 Javascript
PHP7新特性简述
2017/06/11 Javascript
jQuery实现的form转json经典示例
2017/10/10 jQuery
微信小程序使用image组件显示图片的方法【附源码下载】
2017/12/08 Javascript
Angular服务Request异步请求的实例讲解
2018/08/13 Javascript
解决微信小程序scroll-view组件无横向滚动的问题
2020/02/04 Javascript
javascript实现评分功能
2020/06/24 Javascript
用Python编写一个简单的俄罗斯方块游戏的教程
2015/04/03 Python
Python中处理字符串之islower()方法的使用简介
2015/05/19 Python
python PyTorch预训练示例
2018/02/11 Python
pandas groupby 分组取每组的前几行记录方法
2018/04/20 Python
Python使用Pickle库实现读写序列操作示例
2018/06/15 Python
详解Django+uwsgi+Nginx上线最佳实战
2019/03/14 Python
python字符串中匹配数字的正则表达式
2019/07/03 Python
PYTHON实现SIGN签名的过程解析
2019/10/28 Python
windows中安装Python3.8.0的实现方法
2019/11/19 Python
亚洲最大旅游体验平台:KKday
2017/10/21 全球购物
Bravofly德国:预订廉价航班和酒店
2019/09/22 全球购物
翻译学院毕业生自荐书
2014/02/02 职场文书
党员批评与自我批评思想汇报
2014/10/08 职场文书
区域经理岗位职责
2015/02/02 职场文书
Python jiaba库的使用详解
2021/11/23 Python
python绘制云雨图raincloud plot
2022/08/05 Python