vue自定義指令之拖拽
阿新 • • 發佈:2019-02-12
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> .box{ width: 100px; height: 100px; position: absolute; background: red; } </style> </head> <body> <div id="app"> <div v-drag class="box"></div> </div> <script src="vue.js"></script> <script type="text/javascript"> let vm = new Vue({ el:'#app', directives:{ drag(el){ el.onmousedown = function(e){ var disx = e.pageX - el.offsetLeft; var disy = e.pageY - el.offsetTop; document.onmousemove = function(e){ el.style.left = e.pageX - disx + 'px'; el.style.top = e.pageY - disy + 'px'; } document.onmouseup = function(e){ document.onmouseup = document.onmousemove = null } e.preventDefault(); } } }, }) </script> </body> </html>