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常见表单应用技巧
Jan 09 Javascript
纯CSS打造的导航菜单(附jquery版)
Aug 07 Javascript
javascript管中窥豹 形参与实参浅析
Dec 17 Javascript
js实现无需数据库的县级以上联动行政区域下拉控件
Aug 14 Javascript
深入理解jQuery3.0的domManip函数
Sep 01 Javascript
JS封装的三级联动菜单(使用时只需要一行js代码)
Oct 24 Javascript
微信小程序实现给循环列表添加点击样式实例
Apr 26 Javascript
基于Vue2.0+ElementUI实现表格翻页功能
Oct 23 Javascript
JS动态添加元素及绑定事件造成程序重复执行解决
Dec 07 Javascript
vue element-ui table表格滚动加载方法
Mar 02 Javascript
微信小程序实现bindtap等事件传参
Apr 08 Javascript
element-ui树形控件后台返回的数据+生成组织树的工具类
Mar 05 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
星际争霸任务指南——神族
2020/03/04 星际争霸
php查看session内容的函数
2008/08/27 PHP
php实现jQuery扩展函数
2009/10/30 PHP
php cookies中删除的一般赋值方法
2011/05/07 PHP
PHP获取php,mysql,apche的版本信息示例代码
2014/01/16 PHP
如何阻止网站被恶意反向代理访问(防网站镜像)
2014/03/18 PHP
PHP文件读写操作相关函数总结
2014/11/18 PHP
PHP+AJAX实现投票功能的方法
2015/09/28 PHP
基于php实现的验证码小程序
2016/12/13 PHP
通过ifame指向的页面高度调整iframe的高度
2006/10/05 Javascript
浅谈Javascript面向对象编程
2011/11/15 Javascript
js 调用本地exe的例子(支持IE内核的浏览器)
2012/12/26 Javascript
jsPDF导出pdf示例
2014/05/02 Javascript
js调试系列 源码定位与调试[基础篇]
2014/06/18 Javascript
php基于redis处理session的方法
2016/03/14 Javascript
JavaScript驾驭网页-DOM
2016/03/24 Javascript
jquery实现左右无缝轮播图
2020/07/31 Javascript
jQuery基本选择器(实例及表单域value的获取方法)
2016/05/20 Javascript
Node.js读写文件之批量替换图片的实现方法
2016/09/07 Javascript
VUE + UEditor 单图片跨域上传功能的实现方法
2018/02/08 Javascript
JavaScript实现的DOM绘制柱状图效果示例
2018/08/08 Javascript
如何手动实现es5中的bind方法详解
2018/12/07 Javascript
mapboxgl实现带箭头轨迹线的代码
2021/01/04 Javascript
Python set常用操作函数集锦
2017/11/15 Python
Windows下python3.6.4安装教程
2018/07/31 Python
python requests使用socks5的例子
2019/07/25 Python
Python jieba库用法及实例解析
2019/11/04 Python
python实现ip地址的包含关系判断
2020/02/07 Python
美国棒球装备和用品商店:Baseball Savings
2018/06/09 全球购物
班组长竞聘书
2014/03/31 职场文书
初三班主任寄语大全
2014/04/04 职场文书
重阳节活动总结
2014/08/27 职场文书
2015中秋节慰问信范文
2015/03/23 职场文书
2015年大学生实习评语
2015/03/25 职场文书
Python数据分析之绘图和可视化详解
2021/06/02 Python
教你用Java在个人电脑上实现微信扫码支付
2021/06/13 Java/Android