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 相关文章推荐
JavaScript高级程序设计(第3版)学习笔记10 再访js对象
Oct 11 Javascript
解析Javascript中中括号“[]”的多义性
Dec 03 Javascript
jQuery 和 CSS 的文本特效插件集锦
Dec 12 Javascript
JavaScript中实现依赖注入的思路分享
Jan 15 Javascript
jQuery插件slick实现响应式移动端幻灯片图片切换特效
Apr 12 Javascript
jquery的幻灯片图片切换效果代码分享
Sep 07 Javascript
AngularJS基础 ng-srcset 指令简单示例
Aug 03 Javascript
BootStrap 图标icon符号图标glyphicons不正常显示的快速解决办法
Dec 08 Javascript
JS 调试中常见的报错问题解决方法
May 20 Javascript
解决axios发送post请求返回400状态码的问题
Aug 11 Javascript
JS实现电话号码的字母组合算法示例
Feb 26 Javascript
Layui弹出层 加载 做编辑页面的方法
Sep 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
一个用于mysql的数据库抽象层函数库
2006/10/09 PHP
php session_start()关于Cannot send session cache limiter - headers already sent错误解决方法
2009/11/27 PHP
PHP STRING 陷阱原理说明
2010/07/24 PHP
php中判断文件存在是用file_exists还是is_file的整理
2012/09/12 PHP
深入理解PHP几个算法:PHP冒泡、PHP二分法、PHP求素数、PHP乘法表
2013/06/06 PHP
php+MySQL判断update语句是否执行成功的方法
2014/08/28 PHP
学习php设计模式 php实现建造者模式
2015/12/07 PHP
PHP检测链接是否存在的代码实例分享
2016/05/06 PHP
实例解析php的数据类型
2018/10/24 PHP
win10下 php安装seaslog扩展的详细步骤
2020/12/04 PHP
关于取不到由location.href提交而来的上级页面地址的解决办法
2009/07/30 Javascript
jQuery为iframe的body添加click事件的实现代码
2011/04/07 Javascript
根据IP的地址,区分不同的地区,查看不同的网站页面的js代码
2013/02/26 Javascript
3分钟写出来的Jquery版checkbox全选反选功能
2013/10/23 Javascript
浅析jQuery(function(){})与(function(){})(jQuery)之间的区别
2014/01/09 Javascript
java和javascript获取word文档的书签位置对比
2014/06/19 Javascript
jquery中$each()方法的使用指南
2015/04/30 Javascript
jQuery无刷新分页完整实例代码
2015/10/27 Javascript
Parcel.js + Vue 2.x 极速零配置打包体验教程
2017/12/24 Javascript
微信小程序实现流程进度的图样式功能
2018/01/16 Javascript
详解Vue 单文件组件的三种写法
2020/02/19 Javascript
Python用户推荐系统曼哈顿算法实现完整代码
2017/12/01 Python
nohup后台启动Python脚本,log不刷新的解决方法
2019/01/14 Python
Python利用for循环打印星号三角形的案例
2020/04/12 Python
Django怎么在admin后台注册数据库表
2020/11/14 Python
微软开源最强Python自动化神器Playwright(不用写一行代码)
2021/01/05 Python
python3.9.1环境安装的方法(图文)
2021/02/02 Python
html5应用缓存_动力节点Java学院整理
2017/07/13 HTML / CSS
英国在线泳装店:Simply Swim
2019/05/05 全球购物
艺术设计专业个人求职信范文
2013/12/11 职场文书
小学毕业家长寄语
2014/01/19 职场文书
顶撞老师检讨书
2014/02/07 职场文书
如何写一封打动人心的求职信
2014/02/17 职场文书
《故都的秋》教学反思
2014/04/15 职场文书
关于保护环境的建议书
2014/05/13 职场文书
win10+RTX3050ti+TensorFlow+cudn+cudnn配置深度学习环境的方法
2022/06/25 Servers