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编程起步(第四课)
Feb 27 Javascript
几个比较经典常用的jQuery小技巧
Mar 01 Javascript
JS定义回车事件(实现代码)
Jul 08 Javascript
jQuery插件开发的两种方法及$.fn.extend的详解
Jan 16 Javascript
jquery 操作两个select实现值之间的互相传递
Mar 07 Javascript
JavaScript中Boolean对象的属性解析
Oct 21 Javascript
javascript中eval和with用法实例总结
Nov 30 Javascript
JavaScript 不支持 indexof 该如何解决
Mar 30 Javascript
Vue 短信验证码组件开发详解
Feb 14 Javascript
使用react-router4.0实现重定向和404功能的方法
Aug 28 Javascript
vue项目中使用axios上传图片等文件操作
Nov 02 Javascript
json对象及数组键值的深度大小写转换问题详解
Mar 30 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
apache+php完美解决301重定向的两种方法
2011/06/08 PHP
zend framework配置操作数据库实例分析
2012/12/06 PHP
ThinkPHP使用心得分享-上传类UploadFile的使用
2014/05/15 PHP
PHP利用MySQL保存session的实现思路及示例代码
2014/09/09 PHP
PHP+shell脚本操作Memcached和Apache Status的实例分享
2016/03/11 PHP
PHP实现统计所有字符在字符串中出现次数的方法
2017/10/17 PHP
thinkphp框架使用JWTtoken的方法详解
2019/10/10 PHP
datagrid框架的删除添加与修改
2013/04/08 Javascript
使用typeof方法判断undefined类型
2014/09/09 Javascript
JavaScript学习笔记之内置对象
2015/01/22 Javascript
js实现简单锁屏功能实例
2015/05/27 Javascript
深入理解(function(){... })();
2016/08/16 Javascript
基于JavaScript实现抽奖系统
2018/01/16 Javascript
Angularjs之如何在跨域请求中传输Cookie的方法
2018/06/01 Javascript
vue实现学生录入系统之添加删除功能
2018/07/11 Javascript
JavaScript函数apply()和call()用法与异同分析
2018/08/10 Javascript
Nodejs中的require函数的具体使用方法
2019/04/02 NodeJs
js中!和!!的区别与用法
2020/05/09 Javascript
JavaScript实现简单验证码
2020/08/24 Javascript
vant中的toast层级改变操作
2020/11/04 Javascript
用Python计算三角函数之acos()方法的使用
2015/05/15 Python
Python 中urls.py:URL dispatcher(路由配置文件)详解
2017/03/24 Python
python leetcode 字符串相乘实例详解
2018/09/03 Python
python pygame实现2048游戏
2018/11/20 Python
对Python中实现两个数的值交换的集中方法详解
2019/01/11 Python
Python爬取爱奇艺电影信息代码实例
2019/11/26 Python
python安装后的目录在哪里
2020/06/21 Python
利用python爬取有道词典的方法
2020/12/08 Python
无需JS和jQuery代码实现CSS3鼠标浮动放大图片
2016/11/21 HTML / CSS
css3翻牌翻数字的示例代码
2020/02/07 HTML / CSS
美国亚洲时尚和美容产品的一站式网上商店:Stylevana
2019/09/05 全球购物
经典优秀毕业生求职信范文分享
2013/12/18 职场文书
迟到检讨书500字
2014/02/05 职场文书
婚纱摄影师求职信
2014/03/07 职场文书
公司活动总结怎么写
2014/06/25 职场文书
国贸专业求职信
2014/06/28 职场文书