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 解析后的xml对象的读取方法细解
Jul 25 Javascript
jquery 打开窗口返回值实现代码
Mar 04 Javascript
动态加载js、css等文件跨iframe实现
Feb 24 Javascript
js实现页面跳转重定向的几种方式
May 29 Javascript
Bootstrap3学习笔记(三)之表格
May 20 Javascript
JQuery对ASP.NET MVC数据进行更新删除
Jul 13 Javascript
javascript比较语义化版本号的实现代码
Sep 09 Javascript
javascript创建对象的3种方法
Nov 02 Javascript
node.js 用socket实现聊天的示例代码
Oct 17 Javascript
JointJS JavaScript流程图绘制框架解析
Aug 15 Javascript
JS+CSS+HTML实现“代码雨”类似黑客帝国文字下落效果
Mar 17 Javascript
vue将文件/图片批量打包下载zip的教程
Oct 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
与数据库连接
2006/10/09 PHP
腾讯微博提示missing parameter errorcode 102 错误的解决方法
2014/12/22 PHP
CodeIgniter表单验证方法实例详解
2016/03/03 PHP
PHP依赖注入(DI)和控制反转(IoC)详解
2017/06/12 PHP
javascript写的日历类(基于pj)
2010/12/28 Javascript
很棒的学习jQuery的12个网站推荐
2011/04/28 Javascript
ext前台接收action传过来的json数据示例
2014/06/17 Javascript
jquery事件preventDefault()方法用法实例
2015/01/16 Javascript
jquery+php实现滚动的数字特效
2015/11/29 Javascript
AngularJs 利用百度地图API 定位当前位置 获取地址信息
2017/01/18 Javascript
js 作用域和变量详解
2017/02/16 Javascript
vue.js实现单选框、复选框和下拉框示例
2017/07/18 Javascript
Node.js+jade抓取博客所有文章生成静态html文件的实例
2017/09/19 Javascript
webpack4 SCSS提取和懒加载的示例
2018/09/03 Javascript
Vuejs开发环境搭建及热更新【推荐】
2018/09/07 Javascript
javascript自定义日期比较函数用法示例
2019/07/22 Javascript
Node.js 实现抢票小工具 & 短信通知提醒功能
2019/10/22 Javascript
JavaScript实现拖拽盒子效果
2020/02/06 Javascript
CKEditor扩展插件:自动排版功能autoformat插件实现方法详解
2020/02/06 Javascript
vue实现循环滚动列表
2020/06/30 Javascript
Element Rate 评分的使用方法
2020/07/27 Javascript
js节流防抖应用场景,以及在vue中节流防抖的具体实现操作
2020/09/21 Javascript
python实现的udp协议Server和Client代码实例
2014/06/04 Python
Windows8下安装Python的BeautifulSoup
2015/01/22 Python
Django自定义分页与bootstrap分页结合
2021/02/22 Python
基于Python代码编辑器的选用(详解)
2017/09/13 Python
PyCharm+Qt Designer+PyUIC安装配置教程详解
2019/06/13 Python
详解pycharm配置python解释器的问题
2020/10/15 Python
英国美发和美容产品商城:HQhair
2019/02/08 全球购物
馥绿德雅美国官方网站:Rene Furterer头皮护理专家
2019/05/01 全球购物
小学少先队活动方案
2014/02/18 职场文书
劳资协议书范本
2014/04/23 职场文书
企业金融服务方案
2014/06/03 职场文书
环保建议书作文500字
2015/09/14 职场文书
解决Navicat for MySQL 连接 MySQL 报2005错误的问题
2021/05/29 MySQL
MySQL 用 limit 为什么会影响性能
2021/09/15 MySQL