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 相关文章推荐
JS setCapture 区域外事件捕捉
Mar 18 Javascript
jQuery+CSS实现菜单滑动伸展收缩(仿淘宝)
Mar 22 Javascript
jquery easyui combobox模糊过滤(示例代码)
Nov 30 Javascript
jQuery插件扩展测试实例
Jun 21 Javascript
需要牢记的JavaScript基础知识
Sep 25 Javascript
Angular.js中用ng-repeat-start实现自定义显示
Oct 18 Javascript
vue中$refs的用法及作用详解
Apr 24 Javascript
使用D3.js构建实时图形的示例代码
Aug 28 Javascript
微信小程序实现单选选项卡切换效果
Jun 19 Javascript
Angular8 Http拦截器简单使用教程
Aug 20 Javascript
JQuery省市联动效果实现过程详解
May 08 jQuery
JS实现手风琴特效
Nov 08 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
CI框架中通过hook的方式实现简单的权限控制
2015/01/07 PHP
php使用memcoder将视频转成mp4格式的方法
2015/03/12 PHP
Nginx下ThinkPHP5的配置方法详解
2017/08/01 PHP
Smarty模板变量与调节器实例详解
2019/07/20 PHP
为指定元素增加样式的js代码
2009/12/09 Javascript
JS替换字符串中字符即替换全部而不是第一个
2014/06/04 Javascript
node.js中的fs.exists方法使用说明
2014/12/17 Javascript
javascript实现Table间隔色以及选择高亮(和动态切换数据)的方法
2015/05/14 Javascript
jQuery实现带玻璃流光质感的手风琴特效
2015/11/20 Javascript
全面了解JavaScirpt 的垃圾(garbage collection)回收机制
2016/07/11 Javascript
分享一个原生的JavaScript拖动方法
2016/09/25 Javascript
jQuery Checkbox 全选 反选的简单实例
2016/11/29 Javascript
js前端日历控件(悬浮、拖拽、自由变形)
2017/03/02 Javascript
微信小程序tabbar不显示解决办法
2017/06/08 Javascript
基于模板引擎Jade的应用(详解)
2017/12/12 Javascript
angular项目中bootstrap-datetimepicker时间插件的使用示例
2018/03/15 Javascript
Vue Router去掉url中默认的锚点#
2018/08/01 Javascript
js计算两个日期间的天数月的实例代码
2018/09/20 Javascript
node实现分片下载的示例代码
2018/10/17 Javascript
详释JavaScript执行环境与执行栈
2019/04/02 Javascript
原生js实现随机点名
2020/07/05 Javascript
[08:56]DOTA2-DPC中国联赛2月23日Recap集锦
2021/03/11 DOTA
在Python中进行自动化单元测试的教程
2015/04/15 Python
Python中计算三角函数之cos()方法的使用简介
2015/05/15 Python
python随机取list中的元素方法
2018/04/08 Python
python  logging日志打印过程解析
2019/10/22 Python
如何基于python实现画不同品种的樱花树
2020/01/03 Python
python+requests接口自动化框架的实现
2020/08/31 Python
PyTorch中的拷贝与就地操作详解
2020/12/09 Python
详解Pymongo常用查询方法总结
2021/01/29 Python
房地产管理毕业生自荐信
2013/11/04 职场文书
应用艺术专业个人的自我评价
2014/01/03 职场文书
考试不及格的检讨书
2014/01/22 职场文书
住宿生擅自离校检讨书
2014/09/22 职场文书
曾国藩励志经典名言37句,蕴含哲理
2019/10/14 职场文书
MySQL中JOIN连接的基本用法实例
2022/06/05 MySQL