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 相关文章推荐
firefox插件Firebug的使用教程
Jan 02 Javascript
Javascript 判断是否存在函数的方法
Jan 03 Javascript
angularJS 中$scope方法使用指南
Feb 09 Javascript
JavaScript时间转换处理函数
Apr 14 Javascript
jquery+css3实现网页背景花瓣随机飘落特效
Aug 17 Javascript
javascript特殊日历控件分享
Mar 07 Javascript
浅谈js键盘事件全面控制
Dec 01 Javascript
node.js中cluster的使用教程
Jun 09 Javascript
Vue 2.0入门基础知识之内部指令详解
Oct 15 Javascript
详解如何为你的angular app构建一个第三方库
Dec 07 Javascript
使用easyui从servlet传递json数据到前端页面的两种方法
Sep 05 Javascript
ES6扩展运算符和rest运算符用法实例分析
May 23 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
PHP MVC模式在网站架构中的实现分析
2010/03/04 PHP
php 函数使用方法与函数定义方法
2010/05/09 PHP
微信支付开发交易通知实例
2016/07/12 PHP
thinkphp5.1 文件引入路径问题及注意事项
2018/06/13 PHP
Laravel5.1框架注册中间件的三种场景详解
2019/07/09 PHP
基于JQuery框架的AJAX实例代码
2009/11/03 Javascript
javascript拖拽上传类库DropzoneJS使用方法
2013/12/05 Javascript
jquery text()方法取标签中的文本
2014/07/25 Javascript
javascript和jquery实现用户登录验证
2016/05/04 Javascript
利用node.js搭建简单web服务器的方法教程
2017/02/20 Javascript
JavaScript实现树的遍历算法示例【广度优先与深度优先】
2017/10/26 Javascript
学习使用ExpressJS 4.0中的新Router的用法
2018/11/06 Javascript
[10:18]2018DOTA2国际邀请赛寻真——找回自信的TNCPredator
2018/08/13 DOTA
python简单的函数定义和用法实例
2015/05/07 Python
Selenium控制浏览器常见操作示例
2018/08/13 Python
python使用插值法画出平滑曲线
2018/12/15 Python
PyQt5的安装配置过程,将ui文件转为py文件后显示窗口的实例
2019/06/19 Python
利用python在大量数据文件下删除某一行的例子
2019/08/21 Python
对Tensorflow中Device实例的生成和管理详解
2020/02/04 Python
python字符串替换re.sub()实例解析
2020/02/09 Python
python实现凯撒密码、凯撒加解密算法
2020/06/11 Python
python实现简单的tcp 文件下载
2020/09/16 Python
在Python中实现字典反转案例
2020/12/05 Python
美国在线和移动免费会员制批发零售商:Boxed(移动端的Costco)
2020/01/02 全球购物
客服实习的个人自我鉴定
2013/10/20 职场文书
实习生自荐信范文
2013/11/13 职场文书
小组合作学习反思
2014/02/18 职场文书
村安全生产责任书
2014/08/25 职场文书
意外伤害赔偿协议书范文
2014/09/23 职场文书
领导班子三严三实心得体会
2014/10/13 职场文书
2015年六一儿童节活动总结
2015/02/11 职场文书
2019年亲子运动会口号
2019/10/11 职场文书
pycharm2021激活码使用教程(永久激活亲测可用)
2021/03/30 Python
mysql5.7使用binlog 恢复数据的方法
2021/06/03 MySQL
浅谈 JavaScript 沙箱Sandbox
2021/11/02 Javascript
我的收音机情缘
2022/04/05 无线电