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实现无限级select联动菜单
Jan 02 Javascript
JavaScript插件化开发教程 (四)
Jan 27 Javascript
jQuery scrollFix滚动定位插件
Apr 01 Javascript
js中字符串编码函数escape()、encodeURI()、encodeURIComponent()区别详解
Apr 01 Javascript
Jquery UI实现一次拖拽多个选中的元素操作
Dec 01 Javascript
WebSocket实现简单客服聊天系统
May 12 Javascript
js es6系列教程 - 新的类语法实战选项卡(详解)
Sep 02 Javascript
深入理解React高阶组件
Sep 28 Javascript
AngularJS 监听变量变化的实现方法
Oct 09 Javascript
vue 双向数据绑定的实现学习之监听器的实现方法
Nov 30 Javascript
Angular6 发送手机验证码按钮倒计时效果实现方法
Jan 08 Javascript
Vue项目中使用jsonp抓取跨域数据的方法
Nov 10 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 应用程序的安全 -- 不能违反的四条安全规则
2006/11/26 PHP
PHP 删除文件与文件夹操作 unlink()与rmdir()这两个函数的使用
2011/07/17 PHP
php使用curl发送json格式数据实例
2013/12/17 PHP
php根据日期判断星座的函数分享
2014/02/13 PHP
php打印输出棋盘的实现方法
2014/12/23 PHP
PHP实现的网站目录扫描索引工具
2016/09/08 PHP
Laravel 5.4前后台分离,通过不同的二级域名访问方法
2019/10/13 PHP
Javascript 不能释放内存.
2006/09/07 Javascript
Dom加载让图片加载完再执行的脚本代码
2008/05/15 Javascript
javascript 冒泡排序 正序和倒序实现代码
2010/12/14 Javascript
jQuery学习之prop和attr的区别示例介绍
2013/11/15 Javascript
ParseInt函数参数设置介绍
2014/01/02 Javascript
一个仿糯米弹框效果demo
2014/07/22 Javascript
JS利用cookie记忆当前位置的防刷新导航效果
2015/10/15 Javascript
JS实现浏览器状态栏显示时间的方法
2015/10/27 Javascript
jquery采用oop模式class类的使用示例
2016/01/22 Javascript
详细总结Javascript中的焦点管理
2016/09/17 Javascript
原生js轮播特效
2017/05/18 Javascript
React学习笔记之事件处理(二)
2017/07/02 Javascript
详解React native全局变量的使用(跨组件的通信)
2017/09/07 Javascript
用node-webkit把web应用打包成桌面应用(windows环境)
2018/02/01 Javascript
Puppeteer环境搭建的详细步骤
2018/09/21 Javascript
深入理解使用Vue实现Context-Menu的思考与总结
2019/03/09 Javascript
微信小程序云开发之使用云存储
2019/05/17 Javascript
antd-mobile ListView长列表的数据更新遇到的坑
2020/04/08 Javascript
在Python的Django框架中包装视图函数
2015/07/20 Python
python画环形图的方法
2020/03/25 Python
sklearn的predict_proba使用说明
2020/06/28 Python
Python3基于print打印带颜色字符串
2020/07/06 Python
浅谈django不使用restframework自定义接口与使用的区别
2020/07/15 Python
HTML5 embed 标签使用方法介绍
2013/08/13 HTML / CSS
Bluebella德国官网:英国性感内衣和睡衣品牌
2019/11/08 全球购物
生产班组长岗位职责
2014/01/05 职场文书
我的职业生涯规划:打造自己的运动帝国
2014/09/18 职场文书
预备党员思想汇报1000字
2014/10/07 职场文书
Python用tkinter实现自定义记事本的方法详解
2022/03/31 Python