键盘事件
- 在
js
中我们通常通过绑定一个事件,去获取按键的编码,再通过event
中的keyCode
属性去获得编码 - 如果我们需要实现固定的键才能触发事件时就需要不断的判断,其实很麻烦
let button = document.querySelector('button')
button.onkeyup = function (e) {
console.log(e.key)
if (e.keyCode == 13) {
console.log('我是回车键')
}
}
vue
中给一些常用的按键提供了别名,我们只要在事件后加上响应的别名即可vue
中常见别名有:up/向上箭头
、down/向下箭头
、left/左箭头
、right/右箭头
、space/空格
、tab/换行
、esc/退出
、enter/回车
、delete/删除
// 只有按下回车键时才会执行 send 方法
- 对于
Vue
中未提供别名的键,可以使用原始的key
值去绑定,所谓key
值就是event.key
所获得的值 - 如果
key
值是单个字母的话直接使用即可,如果是由多个单词组成的驼峰命名,就需要将其拆开,用-
连接
// 只有按下q键时才会执行send方法
// 只有按下capslock键时才会执行send方法
- 对于系统修饰符
ctrl
、alt
、shift
这些比较复杂的键使用而言,分两种情况 - 因为这些键可以在按住的同时,去按其他键,形成组合快捷键
- 当触发事件为
keydown
时,我们可以直接按下修饰符即可触发 - 当触发事件为
keyup
时,按下修饰键的同时要按下其他键,再释放其他键,事件才能被触发。
// keydown事件时按下alt键时就会执行send方法
// keyup事件时需要同时按下组合键才会执行send方法
- 当然我们也可以自定义按键别名
- 通过
Vue.config.keyCodes.自定义键名=键码
的方式去进行定义
// 只有按下回车键时才会执行send方法
// 13是回车键的键码,将他的别名定义为autofelix
Vue.config.keyCodes.autofelix=13
图片预览
- 在项目中我们经常需要使用到图片预览,
viewerjs
是一款非常炫酷的图片预览插件 - 功能支持包括图片放大、缩小、旋转、拖拽、切换、拉伸等
- 安装
viewerjs
扩展
npm install viewerjs --save
- 引入并配置功能
//引入
import Vue from 'vue';
import 'viewerjs/dist/viewer.css';
import Viewer from 'v-viewer';
//按需引入
Vue.use(Viewer);
Viewer.setDefaults({
'inline': true,
'button': true, //右上角按钮
"navbar": true, //底部缩略图
"title": true, //当前图片标题
"toolbar": true, //底部工具栏
"tooltip": true, //显示缩放百分比
"movable": true, //是否可以移动
"zoomable": true, //是否可以缩放
"rotatable": true, //是否可旋转
"scalable": true, //是否可翻转
"transition": true, //使用 CSS3 过度
"fullscreen": true, //播放时是否全屏
"keyboard": true, //是否支持键盘
"url": "data-source",
ready: function (e) {
console.log(e.type, '组件以初始化');
},
show: function (e) {
console.log(e.type, '图片显示开始');
},
shown: function (e) {
console.log(e.type, '图片显示结束');
},
hide: function (e) {
console.log(e.type, '图片隐藏完成');
},
hidden: function (e) {
console.log(e.type, '图片隐藏结束');
},
view: function (e) {
console.log(e.type, '视图开始');
},
viewed: function (e) {
console.log(e.type, '视图结束');
// 索引为 1 的图片旋转20度
if (e.detail.index === 1) {
this.viewer.rotate(20);
}
},
zoom: function (e) {
console.log(e.type, '图片缩放开始');
},
zoomed: function (e) {
console.log(e.type, '图片缩放结束');
}
})
- 使用图片预览插件
- 单个图片使用
- 多个图片使用
相关vue实战视频讲解:进入学习
跑马灯
- 这是一款好玩的特效技巧
- 比如你在机场接人时,可以使用手机跑马灯特效,成为人群中最靓的仔
- 跑马灯特效其实就是将最前面的文字删除,添加到最后一个,这样就形成了文字移动的效果
跑马灯
{{ msg }}
倒计时
- 对于倒计时技巧,应用的地方很多
- 比如很多抢购商品的时候,我们需要有一个倒计时提醒用户开抢时间
- 其实就是每隔一秒钟,去重新计算一下时间,并赋值到
DOM
中
倒计时
抢购开始时间:{{count}}
自定义右键菜单
- 在项目中,我们有时候需要自定义鼠标右键出现的选项,而不是浏览器默认的右键选项
- 对于如何实现右键菜单,在
Vue
中其实很简单,只要使用vue-contextmenujs
插件即可 - 安装
vue-contextmenujs
插件
npm install vue-contextmenujs
- 引入
//引入
import Vue from 'vue';
import Contextmenu from "vue-contextmenujs"
Vue.use(Contextmenu);
- 使用方法
- 可以使用
可以给选项添加图标
- 可以使用
style
标签自定义选项的样式 - 可以使用
disabled
属性禁止选项可以点击 - 可以使用
divided:true
设置选项的下划线 - 可以使用
children
设置子选项
打印功能
- 对于网页支持打印功能,在很多项目中也比较常见
- 而 Vue 中使用打印功能,可以使用
vue-print-nb
插件 - 安装
vue-print-nb
插件
npm install vue-print-nb --save
- 引入打印服务
import Vue from 'vue'
import Print from 'vue-print-nb'
Vue.use(Print);
- 使用
- 使用
v-print
指令即可启动打印功能
红酥手,黄縢酒,满城春色宫墙柳。
东风恶,欢情薄。
一怀愁绪,几年离索。
错、错、错。
春如旧,人空瘦,泪痕红浥鲛绡透。
桃花落,闲池阁。
山盟虽在,锦书难托。
莫、莫、莫!
JSONP请求
jsonp
是解决跨域
的主要方式之一- 所以学会在
vue
中使用jsonp
其实还是很重要的 - 安装
jsonp
扩展
npm install vue-jsonp --save-dev
- 注册服务
// 在vue2中注册服务
import Vue from 'vue'
import VueJsonp from 'vue-jsonp'
Vue.use(VueJsonp)
// 在vue3中注册服务
import { createApp } from 'vue'
import App from './App.vue'
import VueJsonp from 'vue-jsonp'
createApp(App).use(VueJsonp).mount('#app')
- 使用方法
- 需要注意的是,在使用
jsonp
请求数据后,回调并不是在then
中执行 - 而是在自定义的
callbackName
中执行,并且需要挂载到window
对象上