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 相关文章推荐
Javascript 生成指定范围数值随机数
Jan 09 Javascript
jquery pagination插件实现无刷新分页代码
Oct 13 Javascript
PHP 与 js的通信(via ajax,json)
Nov 16 Javascript
JavaScript控制table某列不显示的方法
Mar 16 Javascript
JavaScript的设计模式经典之代理模式
Feb 24 Javascript
VUE 更好的 ajax 上传处理 axios.js实现代码
May 10 Javascript
微信小程序canvas写字板效果及实例
Jun 15 Javascript
JS实现图片手风琴效果
Apr 17 Javascript
JavaScript创建对象的四种常用模式实例分析
Jan 11 Javascript
JQuery的加载和选择器用法简单示例
May 13 jQuery
JS随机密码生成算法
Sep 23 Javascript
JavaScript事件冒泡机制原理实例解析
Jan 14 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生成Flash动画的实现代码
2010/03/12 PHP
PHP SPL标准库之文件操作(SplFileInfo和SplFileObject)实例
2015/05/11 PHP
php中遍历二维数组并以表格的形式输出的方法
2017/01/03 PHP
CI框架教程之优化验证码机制详解【验证码辅助函数】
2019/04/16 PHP
javascript使用activex控件的代码
2011/01/27 Javascript
javascript 图片裁剪技巧解读
2012/11/15 Javascript
JavaScript日期时间与时间戳的转换函数分享
2015/01/31 Javascript
JavaScript实现把rgb颜色转换成16进制颜色的方法
2015/06/01 Javascript
JavaScript面对国际化编程时的一些建议
2015/06/24 Javascript
浅谈JS中的bind方法与函数柯里化
2016/08/10 Javascript
Jquery Easyui菜单组件Menu使用详解(15)
2016/12/18 Javascript
node.js入门学习之url模块
2017/02/25 Javascript
原生js封装添加class,删除class的实例
2017/11/06 Javascript
JQuery元素快速查找与操作
2018/04/22 jQuery
创建echart多个联动的示例代码
2018/11/23 Javascript
NodeJs入门教程之定时器和队列
2019/03/08 NodeJs
Node.js对MongoDB进行增删改查操作的实例代码
2019/04/18 Javascript
Layui数据表格 前后端json数据接收的方法
2019/09/19 Javascript
vue + node如何通过一个Txt文件批量生成MP3并压缩成Zip
2020/06/02 Javascript
[42:20]Winstrike vs VGJ.S 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
python获取交互式ssh shell的方法
2019/02/14 Python
python 简单的调用有道翻译
2020/11/25 Python
一款纯css3实现的竖形二级导航的实例教程
2014/12/11 HTML / CSS
英国二手物品交易网站:Preloved
2017/10/06 全球购物
C语言笔试题
2014/09/04 面试题
代码中finally中的代码会不会执行
2012/02/06 面试题
老教师工作总结的自我评价
2013/09/27 职场文书
工作的心得体会
2013/12/31 职场文书
创业计划书如何吸引他人眼球
2014/01/10 职场文书
春节联欢晚会主持词范文
2014/03/24 职场文书
运动会开幕式主持词
2014/03/28 职场文书
大学生通用个人自我评价
2014/04/27 职场文书
银行招聘自荐信
2015/03/06 职场文书
历史博物馆观后感
2015/06/05 职场文书
公司开业的祝贺语大全(60条)
2019/07/05 职场文书
PHP实现创建以太坊钱包转账等功能
2021/04/21 PHP