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 学习笔记(四)
Dec 31 Javascript
javascript中局部变量和全局变量的区别详解
Feb 27 Javascript
简介JavaScript中的italics()方法的使用
Jun 08 Javascript
JavaScript如何自定义trim方法
Jul 28 Javascript
Jquery实现弹性滑块滑动选择数值插件
Aug 08 Javascript
JavaScript:Date类型全面解析
May 19 Javascript
Bootstrap3 Grid system原理及应用详解
Sep 30 Javascript
jQuery实现单击按钮遮罩弹出对话框效果(2)
Feb 20 Javascript
angularJs使用$watch和$filter过滤器制作搜索筛选实例
Jun 01 Javascript
JavaScript获取用户所在城市及地理位置
Apr 21 Javascript
详解JS预解析原理
Jun 16 Javascript
关于React Native 无法链接模拟器的问题
Jun 21 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 用sock技术发送邮件的函数
2007/07/21 PHP
php操作sqlserver关于时间日期读取的小小见解
2009/11/29 PHP
php数组函数序列 之array_count_values() 统计数组中所有值出现的次数函数
2011/10/29 PHP
php引用计数器进行垃圾收集机制介绍
2012/09/19 PHP
mysql alter table命令修改表结构实例详解
2016/09/24 PHP
Laravel 微信小程序后端实现用户登录的示例代码
2019/11/26 PHP
document.designMode的功能与使用方法介绍
2007/11/22 Javascript
JS运行耗时操作的延时显示方法
2010/11/19 Javascript
人人网javascript面试题 可以提前实现下
2012/01/05 Javascript
js 字符串转换成数字的三种方法
2013/03/23 Javascript
分析Node.js connect ECONNREFUSED错误
2013/04/09 Javascript
js中call与apply的用法小结
2013/12/28 Javascript
《JavaScript DOM 编程艺术》读书笔记之DOM基础
2015/01/09 Javascript
JavaScript将当前时间转换成UTC标准时间的方法
2015/04/06 Javascript
Node.js的Express框架使用上手指南
2016/03/12 Javascript
jQuery中map函数的两种方式
2017/04/07 jQuery
简单谈谈axios中的get,post方法
2017/06/25 Javascript
vue移动端微信授权登录插件封装的实例
2018/08/28 Javascript
浅谈Vue CLI 3结合Lerna进行UI框架设计
2019/04/14 Javascript
详解如何实现Element树形控件Tree在懒加载模式下的动态更新
2019/04/25 Javascript
javascript使用canvas实现饼状图效果
2020/09/08 Javascript
[03:39]2015国际邀请赛主赛事首日精彩回顾
2015/08/05 DOTA
pygame游戏之旅 添加碰撞效果的方法
2018/11/20 Python
Django的models模型的具体使用
2019/07/15 Python
python3常用的数据清洗方法(小结)
2019/10/31 Python
Python lxml库的简单介绍及基本使用讲解
2020/12/22 Python
CSS3教程(7):CSS3嵌入字体
2009/04/02 HTML / CSS
超市创业计划书
2014/04/24 职场文书
银行进社区活动总结
2014/07/07 职场文书
社会发展项目建议书
2014/08/25 职场文书
无犯罪记录证明范本
2014/09/15 职场文书
学校党的群众路线教育实践活动对照检查材料
2014/09/24 职场文书
个人批评与自我批评发言稿
2014/09/28 职场文书
物业接待员岗位职责
2015/04/15 职场文书
HAM-2000摩机图
2021/04/22 无线电
win10双系统怎么删除一个系统?win10电脑有两个系统删除一个的操作方法
2022/07/15 数码科技