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 相关文章推荐
Zero Clipboard js+swf实现的复制功能使用方法
Mar 07 Javascript
通过JavaScript控制字体大小的代码
Oct 04 Javascript
jQuery load方法用法集锦
Dec 06 Javascript
使用js操作cookie的一点小收获分享
Sep 03 Javascript
table行随鼠标移动变色示例
May 07 Javascript
详解AngularJS中的依赖注入机制
Jun 17 Javascript
js数组去重的方法汇总
Jul 29 Javascript
BootStrap的table表头固定tbody滚动的实例代码
Aug 24 Javascript
小发现之浅谈location.search与location.hash的问题
Jun 23 Javascript
用Cordova打包Vue项目的方法步骤
Feb 02 Javascript
重学 JS:为啥 await 不能用在 forEach 中详解
Apr 15 Javascript
Vue.js中provide/inject实现响应式数据更新的方法示例
Oct 16 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 关于访问控制的和运算符优先级介绍
2013/07/08 PHP
浅析php中常量,变量的作用域和生存周期
2013/08/10 PHP
php生成缩略图填充白边(等比缩略图方案)
2013/12/25 PHP
ThinkPHP实现ajax仿官网搜索功能实例
2014/12/02 PHP
PHP和MySql中32位和64位的整形范围是多少
2016/02/18 PHP
Thinkphp自定义代码生成工具及用法说明(附下载地址)
2016/05/27 PHP
Laravel Memcached缓存驱动的配置与应用方法分析
2016/10/08 PHP
yii2-GridView在开发中常用的功能及技巧总结
2017/01/07 PHP
thinkPHP简单导入和使用阿里云OSSsdk的方法
2017/03/15 PHP
php微信开发之关注事件
2018/06/14 PHP
利用js对象弹出一个层
2008/03/26 Javascript
JQuery中$.each 和$(selector).each()的区别详解
2015/03/13 Javascript
javascript实现的登陆遮罩效果汇总
2015/11/09 Javascript
javascript解析ajax返回的xml和json格式数据实例详解
2017/01/05 Javascript
深入理解JavaScript中的for循环
2017/02/07 Javascript
浅谈js中function的参数默认值
2017/02/20 Javascript
js 函数式编程学习笔记
2017/03/25 Javascript
JavaScript数据结构之二叉树的查找算法示例
2017/04/13 Javascript
vue.js根据代码运行环境选择baseurl的方法
2018/02/28 Javascript
详解Koa中更方便简单发送响应的方式
2018/07/20 Javascript
20个必会的JavaScript面试题(小结)
2019/07/02 Javascript
axios实现文件上传并获取进度
2020/03/25 Javascript
简单的Python2.7编程初学经验总结
2015/04/01 Python
python中偏函数partial用法实例分析
2015/07/08 Python
浅谈Python数据类型之间的转换
2016/06/08 Python
python单向循环链表原理与实现方法示例
2019/12/03 Python
Pycharm制作搞怪弹窗的实现代码
2021/02/19 Python
卡骆驰英国官网:Crocs英国
2019/08/22 全球购物
万豪国际住宅与别墅集团:Homes & Villas by Marriott International
2020/10/08 全球购物
文史专业毕业生自荐信
2013/11/17 职场文书
银行实习鉴定
2013/12/13 职场文书
装修五一活动策划案
2014/01/23 职场文书
霸王洗发水广告词
2014/03/14 职场文书
教师工作证明范本
2015/06/12 职场文书
nodejs利用readline提示输入内容实例代码
2021/07/15 NodeJs
Python 的 sum() Pythonic 的求和方法详细
2021/10/16 Python