1. Vue 自定义指令实现拖拽
<script src="vue.js"></script>
<script> Vue.directive('drag',function(){ var oDiv=this.el;//相当于dom对象 oDiv.οnmοusedοwn=function(ev){ var disX=ev.clientX-oDiv.offsetLeft; var disY=ev.clientY-oDiv.offsetTop;document.οnmοusemοve=function(ev){
var l=ev.clientX-disX; var t=ev.clientY-disY; oDiv.style.left=l+'px'; oDiv.style.top=t+'px'; }; document.οnmοuseup=function(){ document.οnmοusemοve=null; document.οnmοuseup=null; }; }; });window.οnlοad=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>
2. vue自定义指令传参
<script src="vue.js"></script>
<script> Vue.directive('red',function(color){ this.el.style.background=color; });window.οnlοad=function(){
var vm=new Vue({ el:'#box' }); };</script>
</head><body> <div id="box"> <span v-red="'blue'"> asdfasd </span> </div></body>