一下子关闭onload keydown

时间:2016-05-01 01:38:52

标签: javascript jquery

嗯,下面的代码完美无缺, 但我试图用它来封闭 (js的高级和有趣的功能) 但没有成功。 我想了解如何使用闭包来完成这项工作 (并避免内存泄漏,我读过有关闭包的内容)。 如果可能的话,我希望这段代码只能在整个页面之后工作(和 图像已加载)。 这不是我需要完成的事情,而是一些 改进(以及挑战)。我想是一种学习的好方法。这里 是代码。 你可以使用任何美丽的图像作为01.jpg和02.jpg(美丽 景观也许)。任何帮助表示赞赏。 (顺便说一下,spacer.gif是 1x1像素透明图像)。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html>

<head>
<title>Wow</title>

<script src="jquery-1.12.3.min.js"></script>

<style type="text/css">
    body{ margin-top: 0 !important; 
          margin-bottom: 0 !important; 
          text-align: center; background-color:#FFFFFF; }

    .imgsea { display: block; width: 965px; height: 1885px; alt=""; }
    .imginv { display: block; width: 965px; height: 8px; alt=""; }
    .imghnt { display: block; width: 965px; height: 40px; alt=""; }

</style>
</head>


<body>
<img src="spacer.gif" class="imghnt"> 

<img src="01.jpg" class="imgsea"> 
<img src="spacer.gif" class="imginv"> 
<img src="02.jpg" class="imgsea"> 
<img src="spacer.gif" class="imghnt">

</body>

<script>

    var posiciones = [0, 636, 1270, 1903, 2536, 3180];
    var elementos = 6;
    var indis = 0;
    var mosca = 0;

    $("html, body").keydown(function(e){
        if (indis < 0) { indis = 0; }
        if (indis > elementos-1) { indis = elementos-1; }
        var code = (e.keyCode ? e.keyCode : e.which);
        if (code == 34) {
            //alert("page down pressed");
            e.stopImmediatePropagation();
            mosca = posiciones[++indis]; 
            $("html, body").animate({ scrollTop: mosca }, 600); 
            return false;
        } 
        if (code == 33) {
            //alert("page up pressed");
            e.stopImmediatePropagation();
            mosca = posiciones[--indis]; 
            $("html, body").animate({ scrollTop: mosca }, 600); 
            return false;
        }

    });

</script>

</html>

0 个答案:

没有答案