原文链接: vue 自定义指令 directives

上一篇: vue 事件修饰符 stop,capture,prevent

下一篇: js 坑。。。

vue 可以自己扩充指令

增加一个v-color ,根据该属性的值改变元素颜色

<!DOCTYPE html>
<html><head><meta charset="utf-8"><script src="./vue.js" charset="utf-8"></script>
</head><body><div id="app"><div style="width:100px;height:100px" v-color="color"></div><input type="text" v-model="color" /></div><script type="text/javascript">new Vue({el: "#app",data: {color: "red"},directives: {color: function(el, bindings) {console.log(arguments)el.style.background = bindings.value}}})</script>
</body></html>

效果如图

指令传递的参数有5个

包括指令所在的元素,指令的值,以及指令的属性,比如v-color.red,red是指令的属性

v-color-red 对应的指令函数为 colorRed 采用驼峰命名法

创建一个指令,可以拖动元素,在点击该元素时将元素定位改为绝对定位,然后计算拖动的后的坐标,赋值给元素,拖放完毕后将事件函数重置为null,为了避免bug,将默认行为取消

<!DOCTYPE html>
<html><head><meta charset="utf-8"><script src="./vue.js" charset="utf-8"></script><style>.drag {/* position: absolute; */width: 100px;height: 100px;background: blue;}</style>
</head><body><div id='app'><div v-drag class='drag'></div><div class='drag' v-drag></div><div class='drag' v-drag></div></div><script type="text/javascript">new Vue({el: '#app',directives: {drag: function(elem) {console.log(arguments)elem.onmousedown = function(e) {elem.style['position'] = 'absolute'var disx = e.pageX - elem.offsetLeftvar disy = e.pageY - elem.offsetTopconsole.log(disx, disy)document.onmousemove = function(e) {console.log(elem.style)elem.style.left = e.pageX - disx + 'px'elem.style.top = e.pageY - disy + 'px'console.log(elem.style.left, elem.style.top)}document.onmouseup = function() {console.log('取消事件')document.onmousemove = document.onmouseup = null}console.log("取消默认操作")e.preventDefault()}}}})</script>
</body></html>

可以任意拖动加上该标签的元素

vue 自定义指令 directives相关推荐

  1. vue自定义指令directives同时传递多个参数

    vue自定义指令directives同时传递多个参数 // 自定义指令v-hClick绑定for循环第二个参数,这里的inx还可以是其他标的,指令中可通过其做出判断 在dom,将多个参数通过数组的格式 ...

  2. vue自定义指令directives实现自动点击事件及自动点击第一个按钮

    业务场景:点击弹窗默认加载第一个按钮的数据.vue自定义指令directives实现这个需求 目录 自动点击所有的按钮. 自动点击第一个按钮, 自动点击所有的按钮. <ul class=&quo ...

  3. Vue2自定义指令directives简介

    我们在学习vue的时候会学习多个指令,如v-show,v-text,v-pre等等.但如果我们想要完成一些现有指令无法完成的操作的时候,就应该使用自定义指令来实现我们想要的操作.所以现在我们就来简单讲 ...

  4. vue 自定义指令 directive 全局 directives 局部 inserted update

    vue 自定义指令 需求 效果 全局 - 自定义指令 代码 局部 - 自定义指令 代码 自定义命令传值 效果 代码 问点 需求 获取标签,扩展额外的功能 效果 全局 - 自定义指令 代码 // mai ...

  5. vue自定义指令封装节流_Vue自定义指令封装节流函数的方法示例

    节流函数是web前端开发中经常用到的一个开发技巧,在input实时搜索,滚动事件等,为了避免过多消耗性能,我们都会使用节流函数.在<JavaScript高级程序设计>一书中有这样的一个例子 ...

  6. clientsideevents能定义几个click事件_分享8个非常实用的Vue自定义指令

    作者:lzg9527 https://juejin.cn/post/6906028995133833230 在 Vue,除了核心功能默认内置的指令 ( v-model 和 v-show ),Vue 也 ...

  7. html标签outclick,vue自定义指令(Directive中的clickoutside.js)的理解

    阅读目录 vue自定义指令clickoutside.js的理解 vue自定义指令请看如下博客: 一般在需要 DOM 操作时我们都需要使用自定义指令的方式去实现,当然一些特殊的事件监听也可以使用指令,例 ...

  8. 9、Vue自定义指令

    Vue自定义指令 1.vue指令和自定义指令 2.使用自定义指令 2.1.全局注册 2.2.局部注册 3.钩子函数 1.vue指令和自定义指令 什么是指令? v-model.v-bind.v-on.v ...

  9. 【Vue2】自定义指令 directives 过滤器 filter

    自定义指令 directives directives 的简写 我们可以通过配置项 directives 来自定义指令 自定义指令时直接写指令名 XXX,使用时需要加上前缀为 v-XXX <di ...

最新文章

  1. strcpy +memcpy实现循环右移
  2. Spring Boot Bean的使用,@Repository,@Service,@Controller,@Component
  3. 安装完最小化 RHEL/CentOS 7 后需要做的 30 件事情(二)转载自码农网
  4. php 树形结构实例,如果用php写树形结构?
  5. 利用Visual Studio 2005的自动化测试工具来做数据导入
  6. Linux 普通用户和超级用户的切换
  7. 论文浅尝 - TACL2020 | 改进低资源跨语言实体链接的候选生成问题
  8. 实现用户注册功能---文件保存信息,如果用户名存在就死循环继续
  9. Java区间拆分子集求和,对列表中的数字子集求和
  10. Linux中select函数学习及实例笔记
  11. 打印机 树莓派安装cpus_raspberry树莓派安装CUPS实现打印服务器共享HP P1007打印机...
  12. 有道智云实时语音翻译服务全新上线,86+语言实时翻译!
  13. H5链接跳转到微信小程序开发流程记录
  14. win10自带看图工具找不到了咋办
  15. 2018-2019金融周期下的武汉楼市和政策解析
  16. 《软件系统架构:使用观点和观点与利益相关者合作》阅读小结——一
  17. php redis 是什么意思,Redis是什么
  18. unity urp 棉麻织物渲染
  19. new className() new出来的深意
  20. vb雅西高速计算机考试,2016年高中信息技术学业水平考试VB程序复习题.doc

热门文章

  1. 【渝粤题库】陕西师范大学292011 初级微观经济学 作业(高起专)
  2. 3D模型欣赏:黑色的巴斯泰托女神【3D游戏建模教程】
  3. 酷睿i5 1240p什么水平 i5 1240p参数 i51240p是标压还是低压
  4. OFDM和OFDMA的主要优缺点
  5. android学习的网址
  6. 如何修复Android手机上无响应的触摸屏
  7. mysql association_MyBatis的association示例——MyBatis学习笔记之三
  8. DLL 注入的三种方法详解
  9. 屏幕录制和编辑神器ScreenFlow轻松上手
  10. GIT 修改用户名和密码