vue-自定义指令-拖拽
2017-06-19 12:42
489 查看
主要思想: 获取拖拽的dom元素,在oDiv.onmousedown事件内获取鼠标相对dom元素本身的位置:
再通过document.onmousemove事件计算dom元素左上角相对 视口的距离:
完整代码:
var disX=ev.clientX-oDiv.offsetLeft; var disY=ev.clientY-oDiv.offsetTop;
再通过document.onmousemove事件计算dom元素左上角相对 视口的距离:
var l=ev.clientX-disX; var t=ev.clientY-disY; oDiv.style.left=l+'px'; oDiv.style.top=t+'px';
完整代码:
<script>
/* vue-自定义指令-拖拽 */
Vue.directive('drag',function(){
var oDiv=this.el;
oDiv.onmousedown=function(ev){
var disX=ev.clientX-oDiv.offsetLeft;
var disY=ev.clientY-oDiv.offsetTop;
document.onmousemove=function(ev){
var l=ev.clientX-disX; var t=ev.clientY-disY; oDiv.style.left=l+'px'; oDiv.style.top=t+'px';
};
document.onmouseup=function(){
document.onmousemove=null;
document.onmouseup=null;
};
};
});
window.onload=function(){
var vm=new Vue({
el:'#box',
data:{
msg:'welcome'
}
});
};
</script>
</head>
<body>
<div id="box">
<div v-drag :style="{width:'100px', height:'100px', background:'blue', position:'absolute', right:0, top:0}"></div>
<div v-drag :style="{width:'100px', height:'100px', background:'red', position:'absolute', left:0, top:0}"></div>
</div>
</body>
相关文章推荐
- Vue自定义指令-拖拽
- Vue自定义指令拖拽功能示例
- vue自定义指令拖拽事件
- Vue 自定义指令(拖拽,右键菜单)
- Vue——自定义指令directive
- 基于vue-simplemde实现图片拖拽、粘贴功能
- 基于Vue实现拖拽功能
- VUE+WebPack游戏开发:实现红警式的建筑物拖拽生成特效
- 在Vue中通过自定义指令获取元素
- Vue.directive 自定义指令
- Vue全家桶实践(六)---自定义指令(directive)
- vue2.0使用Sortable.js实现的拖拽功能
- Vue拖拽组件开发实例详解
- vue2.0+基础知识连载(19)--- 自定义指令
- Vue 2.0学习笔记:自定义指令
- vue自定义指令实现v-tap插件
- Vue.js自定义指令的用法与实例
- Vue基础-自定义指令的使用
- vue 自定义指令 focus 条件聚焦 时,在与v-if共存时需要处理的问题
- vue-cli怎样写自定义指令的代码?