那里有 JavaScript 专家吗?我有一个在输入 konami 代码后设法淡入的 div,以及一个可以单击以淡出 div 的按钮,但我必须刷新才能重新输入 konami 代码。我希望能够连续输入 konami 代码,而无需刷新页面。理想情况下,我想删除该按钮,但我似乎无法仅使用 if 语句来使事情正常工作。
这是我到目前为止所拥有的:
<script
src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"
type="text/javascript"></script>
<script type= "text/javascript">
var kkeys = [], konami = "38,38,40,40,37,39,37,39,66,65,13";
$(document).keydown(function(e) {
kkeys.push( e.keyCode );
if ( kkeys.toString().indexOf( konami ) >= 0 )
{
$(document).unbind('keydown',arguments.callee);
$(document).ready(function()
{
$(".konami").fadeIn(1000);
});
}
});
</script>
<script type="text/javascript">
$(document).ready(function(){
$(".btn1").click(function(){
$(".konami2").fadeOut(1000);
});
});
</script>
<div class ="konami" style="display: none">
<p class ="konami2">
Hello! Type "bye" to remove!
</p>
<button class="btn1">Fade out</button>
</div>
最佳答案
如果在用户输入按键后清空按键历史记录数组,则应该允许重复该过程。所以,而不是
$(document).unbind('keydown',arguments.callee);
你可以简单地这样做
kkeys = [];
当然,您应该决定当用户第二次输入代码时会发生什么。这是一个切换 div 可见性的版本。请注意,我升级了您的 jquery 版本以支持 fadeToggle 功能。
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.0/jquery.min.js"></script>
<script>
var kkeys = [];
var konami = "38,38,40,40,37,39,37,39,66,65,13";
$(document).keydown(function(e) {
kkeys.push(e.keyCode);
if (kkeys.toString().indexOf(konami) >= 0)
{
kkeys = [];
$(".konami").fadeToggle(1000);
}
});
</script>
<div class="konami" style="display: none">
<p class="konami2">
Hello! Type the code again to remove!
</p>
</div>
关于Javascript Konami 代码,淡入/淡出 Div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6000019/