vue.js拖拽组件开发实例

代码如诗即醉 2018-04-04 09:27:37
如何实现用vue.js实现拖拽功能?求大声指教
...全文
807 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
roffer 2018-04-04
  • 打赏
  • 举报
回复


<div id="drag" v-drag="param" class="drag1"></div>
<div id="drag" v-drag="param" class="drag2"></div>

Vue.directive('drag',{
            bind:function(){
                //只调用一次,指令第一次绑定到元素时调用,用这个钩子函数可以定义一个在绑定时执行一次的初始化动作
            },
            inserted:function(el,banding){
                var param = banding.value;
                console.log(param.a,param.b);
                //被绑定元素插入父节点时调用(父节点存在即可调用,不必存在于 document 中)
                el.onmousedown=function(e){
                    var dx = e.clientX - el.offsetLeft;
                    var dy = e.clientY - el.offsetTop;

                    el.onmousemove = function(e){
                        e.stopPropagation();

                        var left = e.clientX - dx;
                        var top = e.clientY - dy;

                        el.style.left = left + 'px';
                        el.style.top = top + 'px';
                    }
                    document.onmouseup = function(){
                        el.onmousemove = null;
                        document.onmouseup = null;
                    }
                }
            },
            update:function(){
                //被绑定元素所在的模板更新时调用,而不论绑定值是否变化。通过比较更新前后的绑定值,可以忽略不必要的模板更新
            },
            componentUpdated:function(){
                //被绑定元素所在模板完成一次更新周期时调用
            },
            unbind:function(){
                //只调用一次, 指令与元素解绑时调用
            }
        })

var vm = new Vue({
      ...
})

87,993

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧