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实现select添加实现后台权限添加的效果
May 28 Javascript
js修改原型的属性使用介绍
Jan 26 Javascript
javascript相关事件的几个概念
May 21 Javascript
JS+CSS实现自适应选项卡宽度的圆角滑动门效果
Sep 15 Javascript
原生JS和jQuery版实现文件上传功能
Apr 18 Javascript
jQuery实现简单日期格式化功能示例
Sep 19 jQuery
angularJS的radio实现单项二选一的使用方法
Feb 28 Javascript
vue基于mint-ui实现城市选择三级联动
Jun 30 Javascript
vue解决使用$http获取数据时报错的问题
Oct 30 Javascript
小程序websocket心跳库(websocket-heartbeat-miniprogram)
Feb 23 Javascript
Vue组件模板及组件互相引用代码实例
Mar 11 Javascript
通过实例了解Render Props回调地狱解决方案
Nov 04 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加入ftp扩展的解决方法
2013/02/07 PHP
标准版Eclipse搭建PHP环境的详细步骤
2015/11/18 PHP
PHP实现的多文件上传类及用法示例
2016/05/06 PHP
thinkphp3.2中实现phpexcel导出带生成图片示例
2017/02/14 PHP
php四种定界符详解
2017/02/16 PHP
使用laravel的migrate创建数据表的方法
2019/09/30 PHP
javaScript对象和属性的创建方法
2007/01/15 Javascript
chrome原生方法之数组
2011/11/30 Javascript
30个让人兴奋的视差滚动(Parallax Scrolling)效果网站
2012/03/04 Javascript
jquery获取URL中参数解决中文乱码问题的两种方法
2013/12/18 Javascript
Jquery $when done then的用法详解
2016/05/20 Javascript
jQuery自定义图片缩放拖拽插件imageQ实现方法(附demo源码下载)
2016/05/27 Javascript
EasyUI创建对话框的两种方式
2016/08/23 Javascript
jQuery.uploadify文件上传组件实例讲解
2016/09/23 Javascript
基于JS实现带动画效果的流程进度条
2018/06/01 Javascript
Vue如何实现响应式系统
2018/07/11 Javascript
微信小程序swiper实现滑动放大缩小效果
2018/11/15 Javascript
vue中v-for通过动态绑定class实现触发效果
2018/12/06 Javascript
JS实现电话号码的字母组合算法示例
2019/02/26 Javascript
微信小程序--特定区域滚动到顶部时固定的方法
2019/04/28 Javascript
[02:07]2018DOTA2亚洲邀请赛主赛事第三日五佳镜头 fy极限反杀
2018/04/06 DOTA
详解python3中zipfile模块用法
2018/06/18 Python
Python获取Redis所有Key以及内容的方法
2019/02/19 Python
详解python做UI界面的方法
2019/02/27 Python
如何基于python操作excel并获取内容
2019/12/24 Python
pycharm 2018 激活码及破解补丁激活方式
2020/09/21 Python
Python基于pyjnius库实现访问java类
2020/07/31 Python
Pam & Gela官网:美国性感前卫女装品牌
2018/07/19 全球购物
英国领先的体验日提供商:Buyagift
2019/04/19 全球购物
高中毕业自我鉴定范文
2013/10/02 职场文书
中专生自我鉴定范文
2014/02/02 职场文书
晚会主持词开场白
2014/03/17 职场文书
2015年小学生新年寄语
2014/12/08 职场文书
婚宴父母致辞
2015/07/27 职场文书
解决Vue+SpringBoot+Shiro跨域问题
2021/06/09 Vue.js
Java各种比较对象的方式的对比总结
2021/06/20 Java/Android