用jquery 和 jquery.simulate.js 实现模拟键盘事件,点击上下左右div相当于点击键盘的上下左右键

<!DOCTYPE html>
<html> <head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
<title></title>
<style type="text/css">
#box {
width: 50px;
height: 50px;
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
background: lightskyblue;
}
.box-wrapper {
width: 100px;
height: 100px;
position: fixed;
bottom: 0;
left: 0;
background: blue;
}
.box {
float: left;
background-color: orange;
font-size: 30px;
width: 50px;
text-align: center;
height: 50px;
}
.box:nth-child(1){
background-color: pink;
}
.box:nth-child(4){
background-color: blueviolet;
}
</style>
</head>
<script type="text/javascript">
window.onload = function() {
var box1 = document.getElementById("box");
document.onkeydown = function(event) {
event = event || window.event; /*||为或语句,当IE不能识别event时候,就执行window.event 赋值*/
console.log(event.keyCode);
switch(event.keyCode) { /*keyCode:字母和数字键的键码值*/
/*37、38、39、40分别对应左上右下*/
case 37:
box1.style.left = box1.offsetLeft - 10 + "px"; /*图形左移*/
break;
case 38:
box1.style.top = box1.offsetTop - 10 + "px"; /*图形上移*/
break;
case 39:
// alert("你点击了右键");
// alert(box1.offsetLeft + 10 + "px");
box1.style.left = box1.offsetLeft + 10 + "px"; /*图形右移*/
break;
case 40:
box1.style.top = box1.offsetTop + 10 + "px"; /*图形下移*/
break;
}
}
}
</script> <body>
<div id="box"> </div>
<div class="box-wrapper">
<div class="box" ontouchend="arrow_click(2,'up')" ontouchstart="arrow_click(1,'up')">

</div>
<div class="box" ontouchend="arrow_click(2,'down')" ontouchstart="arrow_click(1,'down')">

</div>
<div class="box" ontouchend="arrow_click(2,'left')" ontouchstart="arrow_click(1,'left')">

</div>
<div class="box" ontouchend="arrow_click(2,'right')" ontouchstart="arrow_click(1,'right')">

</div>
</div> </body>
<script src="jq3.1.1.js" type="text/javascript" charset="utf-8"></script>
<script src="jquery.simulate.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
function arrow_click(k_type, type) {
var t = jQuery.simulate.keyCode;
var e = $('#box');
var k_event = k_type == 1 ? 'keydown' : 'keyup';
switch(type) {
case 'right':
$(e).simulate(k_event, {
keyCode: t.RIGHT
});
break;
case 'left':
$(e).simulate(k_event, {
keyCode: t.LEFT
});
break;
case 'up':
$(e).simulate(k_event, {
keyCode: t.UP
});
break;
case 'down':
$(e).simulate(k_event, {
keyCode: t.DOWN
});
break;
case 'space':
$(e).simulate(k_event, {
keyCode: t.SPACE
});
break;
}
}
</script> </html>

初识 jquery.simulate.js 模拟键盘事件的更多相关文章

  1. JS模拟键盘事件 -- 原理及小例子

    提问: 键盘默认事件,比如tab切换,alt+f4关闭,ctrl+t新建等,如果不想通过键盘而是一些按钮点击来触发这些功能,该咋办呢? 例子: 先以tab为例上一个小例子: <!DOCTYPE ...

  2. js模拟键盘事件

    <!DOCTYPE html> <html> <head lang="zh-CN"> <meta charset="UTF-8& ...

  3. JavaScript 模拟键盘事件

    JavaScript 模拟键盘事件和鼠标事件(比如模拟按下回车等) 2016年09月08日 15:23:25 神秘_博士 阅读数:41158 标签: javascript鼠标键盘事件模拟更多 个人分类 ...

  4. selenium 模拟键盘事件 复制粘贴、右键、回车等

    #coding=utf-8 ''' selenium ''' from selenium import webdriver as wd import time bc=wd.Chrome(executa ...

  5. 使用jquery模拟键盘事件,但window系统并不会真的响应事件,只是浏览器当前页面会响应而已

    <!DOCTYPE html> <html> <head> <title>Demo</title> <meta http-equiv= ...

  6. js模拟触发事件

     html标签元素封装着实用的[事件],但在很多时候,需要[模拟触发事件],比如 [按钮单机事件]  可以实实在在点击按钮触发该事件,但体验而言,很多时候需要js逻辑处理让实现 触发事件的效果这时就用 ...

  7. [原创]Javascript 利用mousetrap.js进行键盘事件操作

    我们日常开发中,会遇到js的键盘操作,例如回车提交表单之类的.或者按下某个键执行某个方法.无意中发现一个大小不到4K的js文件,它非常方便的操作键盘事件. 自己也尝试了一下:具体代码如下: 详情可以去 ...

  8. js浏览器键盘事件控制(转自新浪微博)

    js键盘事件全面控制 主要分四个部分第一部分:浏览器的按键事件第二部分:兼容浏览器第三部分:代码实现和优化第四部分:总结 第一部分:浏览器的按键事件 用js实现键盘记录,要关注浏览器的三种按键事件类型 ...

  9. JS获取键盘事件

    <script type="text/javascript" language=JavaScript charset="UTF-8"> docume ...

随机推荐

  1. μC/OS-II中使用软件定时器

    在试着将μC/OS-II移植到ARM7芯片(LPC2138)上的过程中,发现使用OSTmrCreate创建的OSTmr始终都不能执行CallbackFunction,OS版本是v2.85,最后是这么解 ...

  2. 七种常见经典排序算法总结(C++实现)

    排序算法是非常常见也非常基础的算法,以至于大部分情况下它们都被集成到了语言的辅助库中.排序算法虽然已经可以很方便的使用,但是理解排序算法可以帮助我们找到解题的方向. 1. 冒泡排序 (Bubble S ...

  3. 41)PHP,数据库函数的注意点

    (1)那个mysqli_connect()            函数返回的是一个数据库连接对象,所以,你要是var_dump()这个函数的返回值,就是一个对象 (2)那个mysqli_query() ...

  4. 【Linux_Shell 脚本编程学习笔记三、分支与循环结构】

    if 语句是实际生产工作中最重要且最常用的语句,所以,必须掌握牢固 if 条件语法 1. 单分支机构 if  [ 条件 ] then 指令 fi 或 if  [  条件 ]; then 指令 fi   ...

  5. 同步linux系统时间

    Linux的时间分为System Clock(系统时间)和Real Time Clock (硬件时间,简称RTC). 系统时间:指当前Linux Kernel中的时间. 硬件时间:主板上有电池供电的时 ...

  6. Derby数据库的使用

    一. Derby数据库平台的搭建 ●  JDK 1.6版本及之后的版本为Java平台提供了一个数据库管理系统,简称Derby数据库.   ●  连接Derby数据库需要有关的类,这些类以jar文件的形 ...

  7. hibernate主键(generator)生成方式

    1) assigned 主键由外部程序负责生成,无需Hibernate参与. 2) hilo 通过hi/lo 算法实现的主键生成机制,需要额外的数据库表保存主键生成历史状态. 3) seqhilo 与 ...

  8. FileZilla相关配置说明

    相关下载可以直接到官网,或者阿里云帮助:https://help.aliyun.com/knowledge_detail/36243.html?spm=5176.10695662.1996646101 ...

  9. LG_2869_[USACO07DEC]美食的食草动物Gourmet Grazers

    题目描述 Like so many others, the cows have developed very haughty tastes and will no longer graze on ju ...

  10. AVFoundation Programming Guide(官方文档翻译4)Editing - 编辑

    新博客:完整版 - AVFoundation Programming Guide 分章节版:- 第1章:About AVFoundation - AVFoundation概述- 第2章:Using A ...