js中的键盘事件和触摸事件

摘要:
1、 键盘事件键盘事件不能绑定到标签。它必须是具有完全相同效果的窗口或文档。

一、键盘事件
键盘事件不能绑定某个标签,必须是window或document两个使用效果完全一致。可以获取焦点的标签:input select textarea button a 。。。

1、keydown 按下按键触发,如果一直按着,会一直触发

//按下键盘任意按键,触发事件
window.onkeydown = function(){
  console.log(12);
}
//按下键盘任意按键,触发事件
document.onkeydown = function(){
  console.log(34);
}

2、keyup 按键抬起事件

//按下键盘任意键后,松开后才会触发,一直按着不会触发,如果同时按着多个,松开任意一个也会触发
window.onkeyup = function(){
    console.log(12);
}
//按下键盘任意键后,松开后才会触发,一直按着不会触发,如果同时按着多个,松开任意一个也会触发
document.onkeyup = function(){
    console.log(34);
}

3、标签添加相关事件

//标签上添加事件
var oDiv = document.querySelector('div');
//对象.onkeydown/onkeyup
oDiv.onkeydown = function(){
    console.log(56);
}

4、按键的事件对象
e.key 存储按下的按键名称(数字键盘不做区分)
e.keycode 每个按键对应一个数值,不会重复,使用这个来区分每个按键,低版本火狐需要做兼容处理:var 变量 = e.keycode || e.which

window.onkeydown = function(e){
    console.log(e);
}

5、按键组合
ctrl alt shift + 其他组合按键

事件对象e中有3个属性
ctrlKey 按下 ctrl 结果是 true 没有按结果是false
altKey 按下 alt 结果是 true 没有按结果是false
shiftKey 按下 shift 结果是 true 没有按结果是false

//判断按下按键时ctrl + e(69)
window.onkeydown = function(e){
    if(e.ctrlKey == true && e.keycode == 69){
        console.log('同时按下ctrl键和e键')
    }
}    

二、触摸事件(主要用于移动端)
touchstart 触摸开始
touchend 触摸结束
touchmove 触摸移动
其他事件就是这三个事件的组合使用
1、长按: 触摸与结束时间差大于(1秒或者0.5秒,浏览器规定的,跟js没关)

2、轻触: 触摸时间小于100毫秒
3、左移:触摸开始,触摸结束,坐标差

4、特殊事件:
当过度结束时:transitionend 当过度结束时
当动画结束时: animationend 当动画结束时

// 有几个执行的属性,程序就执行几次操作
var oDiv = document.querySelector('div');
oDiv.ontransitionend = function(){
    console.log('过度结束了')
}

免责声明:文章转载自《js中的键盘事件和触摸事件》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇【linux】linux 下 shell命令 执行结果赋值给变量【两种方式】从零开始搭建自己的VueJS2.0+ElementUI单页面网站(一、环境搭建)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

js获取本月,本季度,上个季度,本周,上周的起始和结束时间

1 /* 获得某月的天数 */ 2 function getMonthDays(myMonth) { 3 var nowYear = new Date().getFullYear(); //当前年 4 var monthStartDate = new Date(nowYear, myMonth, 1)...

js 里面的 function 与 Function

function 是 js 的标识符 Function 是 js 里面的一个 构造函数 1、new function 与 new Function 的区别   new 运算符在 js 里面是 创建一个自定义的对象的实例 或者是 一个具有构造函数的本地对象的实例。     语法:new constructor [ ( [ arguments ] ) ]   ...

js文件下载

1.<a>标签   <a> 标签定义超链接,用于从一张页面链接到另一张页面。<a> 元素最重要的属性是 href 属性,它指示链接的目标。HTML5 提供了一些新属性,其中有一个download属性挺有意思的,有了这个属性我们就可以用<a>标签实现文件的下载了。 <!-- href指示文件路径,do...

在JS中使用RecordSet对象的GetRows方法

写ASP程序时,一般情况总是使用的VBScript,不过也不只是这一种选择,也可以用JScript。但在用JScript作为ASP的语言时,比用VBScript有一些小小的不方便,比如RecordSet的GetRows方法。 在ASP中操作数据库,一般都要用到RecordSet对象,如果注重程序效率的话,可能就会用到RecordSet对象的GetRows方...

【QML 动态对象】使用JS中的语句动态创建和销毁组件

QML 除了使用 Loader,还支持使用 JavaScript 动态创建/销毁对象,有两种方式动态创建对象: 使用 Qt.createComponent() 动态创建一个组件对象,然后使用 Component 的 createObject() 方法创建对象。 使用 Qt.createQmlObject() 从一个 QML 字符串直接创建一个对象。 假...

如何利用JS检查元素是否在视口内

前言 分享两个监测元素是否在视口内的方法 1. 位置计算 使用 Element.getBoundingClientRect() 方法返回元素相对于视口的位置 const isElementVisible = (el) => {const rect = el.getBoundingClientRect();}; 获取浏览器窗口的宽高 const isE...