vue视频: 自定义指令 && 拖拽 && 自定义键盘信息
v-text
v-for
v-html
指令: 扩展html语法
自定义指令:
1. 自定义属性指令:
- Vue.directive(指令名称,function(参数){
- this.el -> 原生DOM元素 // vm.$el
- });
- <div v-red="参数"></div>
指令名称: v-red -> red
* 注意: 必须以 v-开头(定义时去掉v-)
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>智能社——http://www.zhinengshe.com</title>
- <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
- <meta name="apple-mobile-web-app-capable" content="yes">
- <meta name="apple-mobile-web-app-status-bar-style" content="black">
- <style>
- </style>
- <script src="vue.js"></script>
- <script>
- Vue.directive('red',function(color){
- this.el.style.background=color;
- });
- window.onload=function(){
- var vm=new Vue({
- el:'#box',
- data:{
- a:'blue'
- }
- });
- };
- </script>
- </head>
- <body>
- <div id="box">
- <span v-red="a">
- asdfasd
- </span>
- </div>
- </body>
- </html>
Vue.directive('red',function(color){})
demo:拖拽
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>智能社——http://www.zhinengshe.com</title>
- <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
- <meta name="apple-mobile-web-app-capable" content="yes">
- <meta name="apple-mobile-web-app-status-bar-style" content="black">
- <style>
- </style>
- <script src="vue.js"></script>
- <script>
- Vue.directive('drag',function(){
- var oDiv=this.el;
- oDiv.onmousedown=function(ev){
- var disX=ev.clientX-oDiv.offsetLeft;
- var disY=ev.clientY-oDiv.offsetTop;
- document.onmousemove=function(ev){
- var l=ev.clientX-disX;
- var t=ev.clientY-disY;
- oDiv.style.left=l+'px';
- oDiv.style.top=t+'px';
- };
- document.onmouseup=function(){
- document.onmousemove=null;
- document.onmouseup=null;
- };
- };
- });
- window.onload=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>
- </html>
ev.clientX-oDiv.offsetLeft
2.自定义元素指令:(用处不大)
- Vue.elementDirective('zns-red',{
- bind: function(){
- this.el.style.background='red';
- }
- });
-------------
@keydown.up
@keydown.enter
@keydown.a/b/c....
自定义键盘信息:
Vue.directive('on').keyCodes.ctrl=17;
Vue.directive('on').keyCodes.myenter=13;
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>智能社——http://www.zhinengshe.com</title>
- <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
- <meta name="apple-mobile-web-app-capable" content="yes">
- <meta name="apple-mobile-web-app-status-bar-style" content="black">
- <style>
- </style>
- <script src="vue.js"></script>
- <script>
- //ctrl->17
- /*document.onkeydown=function(ev){
- console.log(ev.keyCode);
- };*/
- Vue.directive('on').keyCodes.ctrl=17; //
- Vue.directive('on').keyCodes.myenter=13;
- window.onload=function(){
- var vm=new Vue({
- el:'#box',
- data:{
- a:'blue'
- },
- methods:{
- show:function(){
- alert(1);
- }
- }
- });
- };
- </script>
- </head>
- <body>
- <div id="box">
- <input type="text" @keydown.myenter="show">
- </div>
- </body>
- </html>
Vue.directive('on').keyCodes.myenter=13;
- 监听数据变化:
- vm.$el/$mount/$options/....
- vm.$watch(name,fnCb); //浅度
- vm.$watch(name,fnCb,{deep:true}); //深度监视
vue视频: 自定义指令 && 拖拽 && 自定义键盘信息的更多相关文章
- 原生js拖拽、jQuery拖拽、vue自定义指令拖拽
原生js拖拽: <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...
- QT笔记之自定义窗口拖拽移动
1.QT自定义标题栏,拖拽标题栏移动窗口(只能拖拽标题,其他位置无法拖拽) 方法一: 转载:http://blog.sina.com.cn/s/blog_4ba5b45e0102e83h.html . ...
- Vue. 之 Element dialog 拖拽
Vue. 之 Element dialog 拖拽 默认情况下,在使用Element的Dialog模块时,弹出框是不能移动的,且 一旦点击遮罩层区域,弹框就会消失. 解决方案: 1 在 utils 中新 ...
- vue自定义事件---拖拽
margin布局拖拽 Vue.directive('drag', { bind(el, binding, vnode, oldVnode) { const dialogHeaderEl = el.qu ...
- iPhone手机解锁效果&&自定义滚动条&&拖拽--Clone&&窗口拖拽(改变大小/最小化/最大化/还原/关闭)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- vue.js实现内部自定义指令和全局自定义指令------directive
在Vue中,我们平时数据驱动视图时候,内部自带的指令有时候解决不了一些需求,这时候,Vue给我们一个很好用的东东 directive 这个单词是我们写自定义指令的关键字哦 之定义指令为我们提供了几个钩 ...
- Android 自定义可拖拽View,界面渲染刷新后不会自动回到起始位置
以自定义ImageView为例: /** * 可拖拽ImageView * Created by admin on 2017/2/21. */ public class FloatingImageVi ...
- Jquery.Sorttable 桌面拖拽自定义
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- View拖拽 自定义绑定view拖拽的工具类
由于工作需求,需要用到这种处理方法所以我就写了这个 废话不多说先看效果图 接下来就看代码吧 DragDropManager import android.app.Activity; import an ...
随机推荐
- selenium测试(Java)--操作cookie(十七)
package com.test.cookies; import org.openqa.selenium.Cookie; import org.openqa.selenium.JavascriptEx ...
- Spring 4 官方文档学习(七)核心技术之Spring AOP APIs
请忽略本篇内容!!! 1.介绍 2.Spring中的pointcut API 2.1.概念 2.2.对pointcut的操作 2.3. AspectJ expression pointcut 2.4. ...
- linux -- ubuntu 安装apache后,修改默认路径
默认由apt方式安装的Apache,指定网页主目录位于:/var/www 而系统/var所分到的空间太少,所以要换路径 1.修改默认网站目录 ubuntu8.10下修改apache2的默认文档目录 默 ...
- R语言低级绘图函数-points
points 用来在一张图表上添加点,指定好对应的x和y坐标,就可以添加不同形状,颜色的点了: 基本用法: 通过x和y设置点的坐标 plot(1:5, 1:5, xlim = c(0,6), ylim ...
- Java几款性能分析工具的对比
在给客户的应用程序维护的过程中,我注意到在高负载下的一些性能问题.理论上,增加对应用程序的负载会使性能等比率的下降.然而,我认为性能下降的比率远远高于负载的增加.我也发现,性能可以通过改变应用程序的逻 ...
- NHibernate实例
1. 下载相关资源: 下载NHibernate.下载地址: http://nhforge.org/Default.aspx 下载微软Northwind示例数据库,下载地址:http://www.mic ...
- oracle数据备份
from:http://www.docin.com/p-728428621.html
- HTML&CSS精选笔记_布局与兼容性
布局与兼容性 CSS布局 版心和布局流程 为什么要应用布局? 阅读报纸时容易发现,虽然报纸中的内容很多,但是经过合理地排版,版面依然清晰.易读.同样,在制作网页时,要想使页面结构清晰.有条理,也需要对 ...
- java.lang.IncompatibleClassChangeError: Implementing class
项目中使用了quartz,但是jar包却有两个,一个1.8版本,一个2.1版本,导致jar包冲突,所以导致一启动tomcat就出现: Caused by: java.lang.Incompatible ...
- mybatis之parameterType传递多个参数
当在查询的时候需要传入多个参数的时候该怎么办呢: 1,封装成一个Model对象,底层HashMap还是一个 User user=new User(); user.setUserName("z ...