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 delete 使用示例代码
Mar 29 Javascript
JS Map 和 List 的简单实现代码
Jul 08 Javascript
javascript动态的改变IFrame的高度实现自动伸展
Oct 12 Javascript
javascript 判断字符串是否包含某字符串及indexOf使用示例
Oct 18 Javascript
jquery实现效果比较好的table选中行颜色
Mar 25 Javascript
win7下安装配置node.js+express开发环境
Dec 06 Javascript
vue+element-ui集成随机验证码+用户名+密码的form表单验证功能
Aug 05 Javascript
Vue官方推荐AJAX组件axios.js使用方法详解与API
Oct 09 Javascript
jQuery中使用validate插件校验表单功能
May 24 jQuery
js实现打字小游戏
Dec 17 Javascript
解决Vue 给mapState中定义的属性赋值报错的问题
Jun 22 Javascript
js前端设计模式优化50%表单校验代码示例
Jun 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
Apache2 httpd.conf 中文版
2006/12/06 PHP
关于Appserv无法打开localhost问题的解决方法
2009/10/16 PHP
PHP模板引擎Smarty的缓存使用总结
2014/04/24 PHP
ThinkPHP权限认证Auth实例详解
2014/07/22 PHP
PHP CURL使用详解
2019/03/21 PHP
PHP上传图片到数据库并显示的实例代码
2019/12/20 PHP
javascript 动态调整图片尺寸实现代码
2009/12/28 Javascript
javascript一些实用技巧小结
2011/03/18 Javascript
Javascript 中 null、NaN和undefined的区别总结
2013/04/10 Javascript
jQuery中animate用法实例分析
2015/03/09 Javascript
JavaScript中join()方法的使用简介
2015/06/09 Javascript
浅谈addEventListener和attachEvent的区别
2016/07/14 Javascript
fullCalendar中文API官方文档
2017/02/07 Javascript
JavaScript 数组去重并统计重复元素出现的次数实例
2017/12/14 Javascript
一步步教你利用webpack如何搭一个vue脚手架(超详细讲解和注释)
2018/01/08 Javascript
JavaScript中click和onclick本质区别与用法分析
2018/06/07 Javascript
vue选项卡切换登录方式小案例
2019/09/27 Javascript
Python字符串切片操作知识详解
2016/03/28 Python
使用Python从零开始撸一个区块链
2018/03/14 Python
详解如何用django实现redirect的几种方法总结
2018/11/22 Python
Django之模型层多表操作的实现
2019/01/08 Python
在django-xadmin中APScheduler的启动初始化实例
2019/11/15 Python
Python logging模块原理解析及应用
2020/08/13 Python
如何在 Matplotlib 中更改绘图背景的实现
2020/11/26 Python
纯CSS改变webkit内核浏览器的滚动条样式
2014/04/17 HTML / CSS
沙特阿拉伯电子产品和家用电器购物网站:Black Box
2019/07/24 全球购物
白酒营销策划方案
2014/08/17 职场文书
公司辞职信模板
2015/05/13 职场文书
爱岗敬业事迹材料
2019/06/20 职场文书
导游词之镇江-金山寺
2019/10/14 职场文书
Python爬虫框架之Scrapy中Spider的用法
2021/06/28 Python
Java Spring 控制反转(IOC)容器详解
2021/10/05 Java/Android
JavaCV实现照片马赛克效果
2022/01/22 Java/Android
阿里云k8s服务升级时502错误 springboot项目应用
2022/04/09 Servers
Mongodb 迁移数据块的流程介绍分析
2022/04/18 MongoDB
Android Studio实现简易进制转换计算器
2022/05/20 Java/Android