今天正好这个知识点有点淡忘了,就随笔一下吧:

Vue.directive(参数1,参数2)

参数1:指令名称,如"drag"

参数2:指令要实现的回调函数,其中回调函数中也有两个参数,其中:

    参数1:指令绑定的元素,如 el

    参数2:是一个对象,其中有两个参数(value,modifiers)

        value:代表表达式要返回的结果

        modifiers:指令的修饰符

话不多说,直接脑补一波实例:以拖拽为例:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
*{margin:0;padding:0}
.box{
width:100px;
height: 100px;
background: red;
position: absolute;;
}
</style>
</head>
<body>
<div id="app"> <div class="box" v-drag.x="show"></div>
<div class="box" v-drag.y="show"></div>
</div>
</body>
</html>
<script src="vue.js"></script>
<script> Vue.directive("drag",(el,{modifiers,value})=>{
     //ES6中新增的解构赋值
let {x,y} = modifiers
el.onmousedown = function(e){
var disX = e.offsetX;
var disY = e.offsetY;
e.preventDefault();
document.onmousemove = function(e){
var l = e.clientX - disX;
var t = e.clientY - disY;
//如果表达式的结果是false就不拖拽
if(!value)return; if(x){
el.style.left = l+"px";
} if(y){
el.style.top = t+"px";
} if((!x && !y)&&value){
el.style.left = l+"px";
el.style.top = t+"px";
} }
document.onmouseup = function () {
document.onmousemove = null;
document.onmouseup = null; }
}
}) var vm = new Vue({
el:"#app",
data:{
show:true
}
})
</script>

最新文章

  1. Ubuntu15.04安装不完全指南
  2. C# 串口操作系列(3) -- 协议篇,二进制协议数据解析
  3. 新手必学的java报表开发工具FineReport实用技巧
  4. Javascript学习笔记:9种创建对象的方式
  5. 将树苺派升级到Raspbian 8 (Jessie)
  6. 网络包处理工具NetBee
  7. Jquery的普通事件和on的委托事件小案例
  8. hdu4632 Palindrome subsequence ——区间动态规划
  9. javascript oop深入学习笔记(一)
  10. javascript学习笔记3
  11. 点击Enter键,文本框焦点改变 分类: WinForm 2014-04-15 10:30 223人阅读 评论(0) 收藏
  12. YII框架开发一个项目的通用目录结构
  13. oracle 高级分组
  14. 也谈C#之Json,从Json字符串到类代码
  15. 前后端分离Web项目中,RBAC实现的研究
  16. 初识RabbitMQ,附RabbitMQ+PHP演示实例
  17. 1013团队Beta冲刺day5
  18. UOJ#7. 【NOI2014】购票 点分治 斜率优化 凸包 二分
  19. c#无边框窗体移动
  20. 天梯赛 L2-001 紧急救援

热门文章

  1. 关于nslookup以及dig命令的研究报告
  2. Linux 生成随机mac地址,并固化到本地
  3. java枚举enum总结大全
  4. angular复习笔记1-开篇
  5. dump net core lldb 分析
  6. CentOS -- 新建用户并使能密钥登录
  7. python 系统定时关机
  8. K9F1G08U0B K9F2G08U0A K9F2G08U0M
  9. SocksCap代理
  10. Nginx 反向代理Tomcat服务器获取真实IP问题