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 相关文章推荐
suggestion开发小结以及对键盘事件的总结(针对中文输入法状态)
Dec 20 Javascript
jQuery之end()和pushStack()使用介绍
Feb 07 Javascript
基于JQuery实现的图片自动进行缩放和裁剪处理
Jan 31 Javascript
js动态往表格的td中添加图片并注册事件
Jun 12 Javascript
一个字符串反转函数可实现字符串倒序
Sep 15 Javascript
json+jQuery实现的无限级树形菜单效果代码
Aug 27 Javascript
jquery+json实现分页效果
Mar 07 Javascript
JS添加删除DIV的简单实例
Jul 08 Javascript
AngularJS 打开新的标签页实现代码
Sep 07 Javascript
微信小程序之页面跳转和参数传递的实现
Sep 29 Javascript
VUE中V-IF条件判断改变元素的样式操作
Aug 09 Javascript
关于Javascript闭包与应用的详解
Apr 22 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中文字母数字验证码实现代码
2008/04/25 PHP
PHP用SAX解析XML的实现代码与问题分析
2011/08/22 PHP
Windows下部署Apache+PHP+MySQL运行环境实战
2012/08/31 PHP
PHP实现简单的新闻发布系统实例
2015/07/28 PHP
Zend Framework常用校验器详解
2016/12/09 PHP
php curl常用的5个经典例子
2017/01/20 PHP
JavaScript OOP类与继承
2009/11/15 Javascript
JQuery跨Iframe选择实现代码
2010/08/19 Javascript
JQuery 选择器、过滤器介绍
2011/02/14 Javascript
深入理解JavaScript系列(2) 揭秘命名函数表达式
2012/01/15 Javascript
js数组的操作详解
2013/03/27 Javascript
详解JavaScript中的Unescape()和String() 函数
2015/11/09 Javascript
js正则表达式replace替换变量方法
2016/05/21 Javascript
jQuery 插件封装的方法
2016/11/16 Javascript
DOM 事件的深入浅出(二)
2016/12/05 Javascript
vue实现动态添加数据滚动条自动滚动到底部的示例代码
2018/07/06 Javascript
vue全局使用axios的方法实例详解
2018/11/22 Javascript
vue增加强缓存和版本号的实现方法
2019/05/01 Javascript
Javascript如何实现双指控制图片功能
2020/02/25 Javascript
vue打开其他项目页面并传入数据详解
2020/11/25 Vue.js
[02:43]DOTA2英雄基础教程 德鲁伊
2014/01/13 DOTA
[01:33:59]真人秀《加油 DOTA》 第六期
2014/09/09 DOTA
Python heapq使用详解及实例代码
2017/01/25 Python
python操作列表的函数使用代码详解
2017/12/28 Python
python pandas cumsum求累计次数的用法
2019/07/29 Python
PyCharm Ctrl+Shift+F 失灵的简单有效解决操作
2021/01/15 Python
英国豪华装饰照明品牌的在线零售商:Inspyer Lighting
2019/12/10 全球购物
学生实习推荐信范文
2013/11/26 职场文书
电话销售经理岗位职责
2013/12/07 职场文书
个人收入证明范本
2014/01/12 职场文书
国际贸易专业个人职业生涯规划
2014/02/15 职场文书
乡镇消防工作实施方案
2014/03/27 职场文书
市场营销专业毕业生求职信
2014/07/21 职场文书
土木工程专业本科生求职信
2014/10/01 职场文书
pytorch查看网络参数显存占用量等操作
2021/05/12 Python
JavaWeb 入门篇(3)ServletContext 详解 具体应用
2021/07/16 Java/Android