这次是利用vue的自定义指令实现方块拖拽

Vue.directive(指令名称,function(参数){
       this.el    -> 原生DOM元素
    });

拖拽:元素onmousedown中包括document.onmousemove和document.onmouseup

结构:

<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>

script:

Vue.directive('drag',function(){
           var oDiv=this.el;
           oDiv.onmousedown=function(ev){
               var x=ev.pageX-oDiv.offsetLeft;
               var y=ev.pageY-oDiv.offsetTop;
               document.onmousemove=function(ev){
                   var l=ev.pageX-x;
                   var t=ev.pageY-y;
                   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({
                data:{

                }
            }).$mount('#box')
        }

雨后
45 声望20 粉丝

蔡蔡菜菜


« 上一篇
其他小记
下一篇 »
vue第五天