JavaScript Konami Code 实现代码


Posted in Javascript onJuly 29, 2009

在 Facebook 上有一个彩蛋:
登录 facebook.com ,点击你首页的任何地方,键盘输入 Up, Up, Down, Down, Left, Right, Left, Right, B, A, Enter 后,再点击页面或滚动一下滚动条,你会发现特殊的变化(如下图),嘿嘿 ^^

JavaScript Konami Code 实现代码

玩过“魂斗罗”的朋友,肯定一眼就能看出输入的字符原来就是“魂斗罗”中的“秘技”。其实“秘技”的术语叫 Konami Code,详细见图示:

JavaScript Konami Code 实现代码

那如何用 JavaScript 也在自己的页面上添加一个类似的彩蛋呢?
Abhi 在 《Konami Code on Facebook : How to implement it on your site》 一文中提供了大体思路:

var $ = { 
enabled: false, 
tmp: Array(), 
_konamiCode: Array(65,66,39,37,39,37,40,40,38,38), 
init: function() { 
this.tmp = Array(65,66,39,37,39,37,40,40,38,38); 
}, 
konamiCode: function(e) { 
if(!this.enabled) { 
var t = this.tmp.pop(); 
if((e.keyCode-t) == 0) { 
if(this.tmp.length == 0) { 
this.enabled = true; 
} 
} else { 
this.init(); 
} 
} else { 
this.action(); 
} 
}, 
// Change the action() function to whatever you want to 
action: function() { 
//alert("Konami Code Activated"); 
} 
}

不过 Abhi 的方法还是冗余了点,Jan Jarfalk 在留言中提供了一个短小精悍的代码:
var k=[]; 
function(e){ 
k.push(e.keyCode); 
if(k.toString().indexOf("38,38,40,40,37,39,37,39,66,65")>=0) { 
//alert("Konami Code Activated"); 
}
Javascript 相关文章推荐
JS中字符问题(二进制/十进制/十六进制及ASCII码之间的转换)
Nov 03 Javascript
解读JavaScript中 For, While与递归的用法
May 07 Javascript
JS 如何获取radio选中后的值及不选择取radio的值
Oct 28 Javascript
基于jquery实现的可编辑下拉框实现代码
Aug 02 Javascript
vue.js入门教程之绑定class和style样式
Sep 02 Javascript
vue 2.0路由之路由嵌套示例详解
May 08 Javascript
vue自定义一个v-model的实现代码
Jun 21 Javascript
vue升级之路之vue-router的使用教程
Aug 14 Javascript
微信小程序自定义导航教程(兼容各种手机)
Dec 12 Javascript
聊聊Vue 中 title 的动态修改问题
Jun 11 Javascript
微信头像地址失效踩坑记附带解决方案
Sep 23 Javascript
vue进入页面时不在顶部,检测滚动返回顶部按钮问题及解决方法
Oct 30 Javascript
JavaScript 获取事件对象的注意点
Jul 29 #Javascript
javascript CSS画图之基础篇
Jul 29 #Javascript
JQuery 表格操作(交替显示、拖动表格行、选择行等)
Jul 29 #Javascript
JavaScript 设计模式学习 Factory
Jul 29 #Javascript
JQuery UI皮肤定制
Jul 27 #Javascript
JavaScript 设计模式学习 Singleton
Jul 27 #Javascript
xml 封装与解析(javascript和C#中)
Jul 26 #Javascript
You might like
php 网页游戏开发入门教程一(webgame+design)
2009/10/26 PHP
php smarty模版引擎中的缓存应用
2009/12/02 PHP
PHP获取数组最后一个值的2种方法
2015/01/21 PHP
php使用Jpgraph创建柱状图展示年度收支表效果示例
2017/02/15 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
2017/12/21 PHP
PHP实现数据四舍五入的方法小结【4种方法】
2019/03/27 PHP
JS input 数字验证代码
2009/07/30 Javascript
Jquery进度条插件 Progress Bar小问题解决
2011/07/12 Javascript
JavaScript设置IFrame高度自适应(兼容各主流浏览器)
2013/06/05 Javascript
js实现网页收藏功能
2015/12/17 Javascript
深入解析JavaScript中的立即执行函数
2016/05/21 Javascript
jQuery实现的兼容性浮动层示例
2016/08/02 Javascript
jQuery实现立体式数字滚动条增加效果
2016/12/21 Javascript
Angularjs实现搜索关键字高亮显示效果
2017/01/17 Javascript
javascript实现秒表计时器的制作方法
2017/02/16 Javascript
微信小程序实现缓存根据不同的id来进行设置和读取缓存
2017/06/12 Javascript
Mui使用jquery并且使用点击跳转新窗口的实例
2017/08/19 jQuery
浅谈JavaScript find 方法不支持IE的问题
2017/09/28 Javascript
Vue2仿淘宝实现省市区三级联动
2020/04/15 Javascript
VSCode配置react开发环境的步骤
2017/12/27 Javascript
vue监听input标签的value值方法
2018/08/27 Javascript
React+EggJs实现断点续传的示例代码
2020/07/07 Javascript
[01:01:51]EG vs VG Supermajor小组赛B组 BO3 第二场 6.2
2018/06/03 DOTA
用Python编写脚本使IE实现代理上网的教程
2015/04/23 Python
python实现多线程行情抓取工具的方法
2018/02/28 Python
Python文本统计功能之西游记用字统计操作示例
2018/05/07 Python
Python设计模式之代理模式实例详解
2019/01/19 Python
python3使用matplotlib绘制条形图
2020/03/25 Python
python生成随机红包的实例写法
2019/09/02 Python
Python动态导入模块:__import__、importlib、动态导入的使用场景实例分析
2020/03/30 Python
Python使用grequests并发发送请求的示例
2020/11/05 Python
LACOSTE波兰官网:Polo衫、服装和鞋类
2020/09/29 全球购物
槐乡的孩子教学反思
2014/04/27 职场文书
运动会稿件100字
2014/09/24 职场文书
postgresql无序uuid性能测试及对数据库的影响
2021/06/11 PostgreSQL
MySQL实现字段分割一行转多行的示例代码
2022/07/07 MySQL