vue中使用全局指令
main.js中定义
Vue.directive('color', {
bind(el){
el.style.background="red"
}
})
组件中使用
<p v-color>哈哈哈哈哈哈哈哈哈</p>
局部自定义指令--拖拽
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="js/vue.min.js"></script>
<style>
.box{
width: 100px;
height: 100px;
border: 1px solid;
background: blue;
position: relative;
top: 0;
left: 0;
box-shadow: 5px 5px 10px red inset;
}
#app html body{
width: 100%;
height: 100%;
}
html{
height: 100%;
margin: 0;
padding: 0;
}
body{
margin: 0;
width: 100%;
height: 100%;
background: linear-gradient(to top right, red, blue);
}
</style>
</head>
<body>
<div id="app">
<div v-drag class="box"></div>
</div>
<div v-color>我在听课</div>
</body>
</html>
<script>
new Vue({
el:"#app",
data:{
},
directives:{
drag(el,binding){
el.onmousedown=function(e){
var disx=e.pageX-el.offsetLeft;
var disy=e.pageY-el.offsetTop;
document.onmousemove=function(e){
// console.log("123")
el.style.left=e.pageX-disx+"px";
el.style.top = e.pageY-disy+"px";
}
document.onmouseup=function(){
document.onmousemove = document.onmouseup=null;
}
}
}
}
})
</script>