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 相关文章推荐
基于KMP算法JavaScript的实现方法分析
May 03 Javascript
jQuery插件jcrop+Fileapi完美实现图片上传+裁剪+预览的代码分享
Apr 22 Javascript
JavaScript iframe数据共享接口实现方法
Jan 06 Javascript
基于bootstrap-datetimepicker.js不支持IE8的快速解决方法
Nov 07 Javascript
微信小程序 MD5加密登录密码详解及实例代码
Jan 12 Javascript
JavaScript中利用构造器函数模拟类的方法
Feb 16 Javascript
微信小程序模版渲染详解
Jan 26 Javascript
可能被忽略的一些JavaScript数组方法细节
Feb 28 Javascript
WebGL three.js学习笔记之阴影与实现物体的动画效果
Apr 25 Javascript
layui: layer.open加载窗体时出现遮罩层的解决方法
Sep 26 Javascript
Vue 解决多级动态面包屑导航的问题
Nov 04 Javascript
js实现移动端图片滑块验证功能
Sep 29 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中遍历二维数组的几种方法详解
2013/06/08 PHP
PHP 正则判断中文UTF-8或GBK的思路及具体实现
2013/11/26 PHP
php使用yield对性能提升的测试实例分析
2019/09/19 PHP
浅谈laravel 5.6 安装 windows上使用composer的安装过程
2019/10/18 PHP
PHPstorm激活码2020年5月13日亲测有效
2020/09/17 PHP
Gambit vs ForZe BO3 第一场 2.13
2021/03/10 DOTA
10个新的最有前途的JavaScript框架
2009/03/12 Javascript
JavaScript 轻松搞定快捷留言功能 只需一行代码
2010/04/01 Javascript
Javascript模块化编程(三)require.js的用法及功能介绍
2013/01/17 Javascript
thinkphp中常用的系统常量和系统变量
2014/03/05 Javascript
通过点击jqgrid表格弹出需要的表格数据
2015/12/02 Javascript
JS面试题---关于算法台阶的问题
2016/07/26 Javascript
正则表达式,替换所有HTML标签的简单实例
2016/11/28 Javascript
jQuery插件FusionCharts绘制的3D环饼图效果示例【附demo源码】
2017/04/02 jQuery
jquery中done和then的区别(详解)
2017/12/19 jQuery
Vue组件化开发思考
2018/02/02 Javascript
vue.js获得当前元素的文字信息方法
2018/03/09 Javascript
javascript匿名函数中的'return function()'作用
2018/10/15 Javascript
Vue使用zTree插件封装树组件操作示例
2019/04/25 Javascript
js常用正则表达式集锦
2019/05/17 Javascript
[01:19:54]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#1Alliance VS EHOME
2016/03/03 DOTA
[07:48]DOTA2上海特级锦标赛主赛事首日RECAP
2016/03/04 DOTA
python获取本机mac地址和ip地址的方法
2015/04/29 Python
Python基于回溯法子集树模板解决m着色问题示例
2017/09/07 Python
Python开发中爬虫使用代理proxy抓取网页的方法示例
2017/09/26 Python
TF-IDF与余弦相似性的应用(二) 找出相似文章
2017/12/21 Python
Python操作mysql数据库实现增删查改功能的方法
2018/01/15 Python
Python中pandas dataframe删除一行或一列:drop函数详解
2018/07/03 Python
Python读写文件基础知识点
2019/06/10 Python
使用 Python 处理 JSON 格式的数据
2019/07/22 Python
基于django micro搭建网站实现加水印功能
2020/05/22 Python
Nike台湾官方商店:Nike.com (TW)
2017/08/16 全球购物
英国购买威士忌网站:Master of Malt
2019/09/26 全球购物
会议主持词
2014/03/17 职场文书
2015年加油站工作总结
2015/05/13 职场文书
Python Pandas数据分析之iloc和loc的用法详解
2021/11/11 Python