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 相关文章推荐
新浪刚打开页面出来的全屏广告代码
Apr 02 Javascript
基于KMP算法JavaScript的实现方法分析
May 03 Javascript
解决Extjs4中form表单提交后无法进入success函数问题
Nov 26 Javascript
微信小程序 input输入框详解及简单实例
Jan 10 Javascript
angular中使用Socket.io实例代码
Jun 03 Javascript
javascript简写常用的12个技巧(可以大大减少你的js代码量)
Mar 28 Javascript
Angular5.1新功能分享
Dec 21 Javascript
node.js中fs文件系统目录操作与文件信息操作
Feb 24 Javascript
vue-image-crop基于Vue的移动端图片裁剪组件示例
Aug 28 Javascript
浅析vue 函数配置项watch及函数 $watch 源码分享
Nov 22 Javascript
基于vue开发微信小程序mpvue-docs跳转页面功能
Apr 10 Javascript
小程序实现层叠卡片滑动效果
Aug 26 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
真正面向对象编程:PHP5.01发布
2006/10/09 PHP
PHP面向对象法则
2012/02/23 PHP
PHP中的Memcache详解
2014/04/05 PHP
使用GruntJS构建Web程序之安装篇
2014/06/04 Javascript
js实现文章文字大小字号功能完整实例
2014/11/01 Javascript
javascript变量声明实例分析
2015/04/25 Javascript
JavaScript小技巧整理篇(非常全)
2016/01/26 Javascript
JavaScript中apply方法的应用技巧小结
2016/09/29 Javascript
jQuery简单实现遍历单选框的方法
2017/03/06 Javascript
详解windows下vue-cli及webpack 构建网站(三)使用组件
2017/06/17 Javascript
详解webpack 多页面/入口支持&公共组件单独打包
2017/06/29 Javascript
jquery手机触屏滑动拼音字母城市选择器的实例代码
2017/12/11 jQuery
Vue递归实现树形菜单方法实例
2018/11/06 Javascript
小程序转发探索示例
2019/02/19 Javascript
js如何验证密码强度
2020/03/18 Javascript
nuxt.js添加环境变量,区分项目打包环境操作
2020/11/06 Javascript
vue 实现click同时传入事件对象和自定义参数
2021/01/29 Vue.js
[46:32]Fnatic vs OG 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python之eval()函数危险性浅析
2014/07/03 Python
Pthon批量处理将pdb文件生成dssp文件
2015/06/21 Python
python 拷贝特定后缀名文件,并保留原始目录结构的实例
2018/04/27 Python
基于python OpenCV实现动态人脸检测
2018/05/25 Python
Python 实现训练集、测试集随机划分
2020/01/08 Python
PyQt5实现画布小程序
2020/05/30 Python
python识别验证码的思路及解决方案
2020/09/13 Python
Html5之svg可缩放矢量图形_动力节点Java学院整理
2017/07/17 HTML / CSS
HTML5自定义mp3播放器源码
2020/01/06 HTML / CSS
recorder.js 基于Html5录音功能的实现
2020/05/26 HTML / CSS
印度尼西亚综合购物网站:Lazada印尼
2016/09/07 全球购物
英国家庭珠宝商:T. H. Baker
2018/02/08 全球购物
苹果音乐订阅:Apple Music
2018/08/02 全球购物
英国DIY和家居装饰领域的主要品牌:Wickes
2019/11/26 全球购物
请说出几个常用的异常类
2013/01/08 面试题
基层领导干部“四风”问题批评与自我批评
2014/09/23 职场文书
单位一把手群众路线四风问题整改措施
2014/09/25 职场文书
Python的flask接收前台的ajax的post数据和get数据的方法
2021/04/12 Python