JavaScript 实现 Konami Code
这篇文章之后感觉挺有意思的,就自己写了个网页彩蛋 原文提供的代码很简洁,实际使用中自己又增加了一点控制部分,
比如 显示一定时间后消失,刷新之后清空变量值,重新开始记录键值。
程序的原理就是检测按键的键值,当达到预定条件时执行规定的函数。
贴一下代码和注释:
function trick(e){
if(typeof window.k=="undefined"){
window.k=""
}
var e=e||event;
//alert(e.keyCode);
if(e.keyCode==116) window.k=""; //F5 清空重新计数
window.k+=e.keyCode+",";
if(window.k=="38,38,40,40,37,37,39,39,") {
play();
window.k=""; //执行play 同时清空
}
}
function play(){
var bdy=document.getElementsByTagName("body")[0];
var p=bdy.getElementsByTagName("p")[0];
var h1=document.createElement("h1");
h1.innerHTML="Hello!!!!!";
bdy.className="bg";
p.style.display="none";
bdy.appendChild(h1);
window.setTimeout("clean()",5000); //延时清理
}
function clean(){ //恢复页面
var bdy=document.getElementsByTagName("body")[0];
var p=bdy.getElementsByTagName("p")[0];
bdy.className="";
p.style.display="";
var h1=bdy.getElementsByTagName("h1")[0];
bdy.removeChild(h1);
}
document.onkeydown=trick; //记录键值执行函数
if(typeof window.k=="undefined"){
window.k=""
}
var e=e||event;
//alert(e.keyCode);
if(e.keyCode==116) window.k=""; //F5 清空重新计数
window.k+=e.keyCode+",";
if(window.k=="38,38,40,40,37,37,39,39,") {
play();
window.k=""; //执行play 同时清空
}
}
function play(){
var bdy=document.getElementsByTagName("body")[0];
var p=bdy.getElementsByTagName("p")[0];
var h1=document.createElement("h1");
h1.innerHTML="Hello!!!!!";
bdy.className="bg";
p.style.display="none";
bdy.appendChild(h1);
window.setTimeout("clean()",5000); //延时清理
}
function clean(){ //恢复页面
var bdy=document.getElementsByTagName("body")[0];
var p=bdy.getElementsByTagName("p")[0];
bdy.className="";
p.style.display="";
var h1=bdy.getElementsByTagName("h1")[0];
bdy.removeChild(h1);
}
document.onkeydown=trick; //记录键值执行函数