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当鼠标悬停时放大图片的效果实例
Jul 03 Javascript
js展开闭合效果演示代码
Jul 24 Javascript
设为首页和收藏的Javascript代码(亲测兼容IE,Firefox,chrome等浏览器)
Nov 18 Javascript
Jquery轮播效果实现过程解析
Mar 30 Javascript
50 个 jQuery 插件可将你的网站带到另外一个高度
Apr 26 Javascript
jQuery实现的表头固定效果实例【附完整demo源码下载】
Aug 01 Javascript
微信小程序 Flex布局详解
Oct 09 Javascript
js编写的treeview使用方法
Nov 11 Javascript
vue如何使用 Slot 分发内容实例详解
Sep 05 Javascript
详解基于node.js的脚手架工具开发经历
Jan 28 Javascript
Vue项目history模式下微信分享爬坑总结
Mar 29 Javascript
Element-ui树形控件el-tree自定义增删改和局部刷新及懒加载操作
Aug 31 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模板技术[转]
2007/01/04 PHP
PHP常用技巧总结(附函数代码)
2012/02/04 PHP
如何使用“PHP” 彩蛋进行敏感信息获取
2013/08/07 PHP
Json_decode 解析json字符串为NULL的解决方法(必看)
2017/02/17 PHP
php7函数,声明,返回值等新特性介绍
2018/05/25 PHP
php加速缓存器opcache,apc,xcache,eAccelerator原理与配置方法实例分析
2020/03/02 PHP
删除重复数据的算法
2006/11/23 Javascript
extjs grid取到数据而不显示的解决
2008/12/29 Javascript
javascript各浏览器中option元素的表现差异
2011/04/07 Javascript
js实现全屏漂浮广告移入光标停止移动
2013/12/02 Javascript
JavaScript实现横向滑出的多级菜单效果
2015/10/09 Javascript
详解AngularJS中module模块的导入导出
2015/12/10 Javascript
javascript仿京东导航左侧分类导航下拉菜单效果
2020/11/25 Javascript
js实现页面跳转的几种方法小结
2016/05/16 Javascript
概述如何实现一个简单的浏览器端js模块加载器
2016/12/07 Javascript
jQuery实现单击按钮遮罩弹出对话框效果(2)
2017/02/20 Javascript
Angular4学习笔记之实现绑定和分包
2017/08/01 Javascript
取消Bootstrap的dropdown-menu点击默认关闭事件方法
2018/08/10 Javascript
微信小程序上传图片到php服务器的方法
2019/05/23 Javascript
[03:22]DSPL第一期精彩集锦:酷炫到底!
2014/11/07 DOTA
解决python删除文件的权限错误问题
2018/04/24 Python
Python爬取成语接龙类网站
2018/10/19 Python
Pycharm以root权限运行脚本的方法
2019/01/19 Python
python网络应用开发知识点浅析
2019/05/28 Python
pytorch 输出中间层特征的实例
2019/08/17 Python
python如何实现不用装饰器实现登陆器小程序
2019/12/14 Python
PyCharm Anaconda配置PyQt5开发环境及创建项目的教程详解
2020/03/24 Python
爱尔兰最大的体育零售商:Life Style Sports
2019/06/12 全球购物
黑猩猩商店:The Chimp Store
2020/02/12 全球购物
法律专业个人实习自我鉴定
2013/09/23 职场文书
小学校园之星事迹材料
2014/05/16 职场文书
信用卡逾期证明示例
2014/09/13 职场文书
2016春季幼儿园大班开学寄语
2015/12/03 职场文书
Pytorch 使用tensor特定条件判断索引
2021/04/08 Python
MySQL root密码的重置方法
2021/04/21 MySQL
关于Vue中的options选项
2022/03/22 Vue.js