键处理事件--使用键盘上的左右箭头产看幻灯片的切换

首先介绍一下onkeydown事件,网页的访问者通过使用键事件处理程序,可以在用户按下适当的键时执行相应的操作。
如图所示
幻灯片的HTML:

<!DOCTYPE html>
<html>
<head>
    <title>Image Slideshow</title>
    <link rel="stylesheet" href="script08.css">
    <script src="script08.js"></script> 
</head>
<body>
    <h3 class="centered">
        <img src="images/callisto.jpg" id="myPicture" alt="Slideshow"><br>
        Use the right and left arrows on your keyboard to view the slideshow
    </h3>
</body>
</html>

CSS较简单,此处省略。
JS脚本如下:

document.onkeydown = keyHit;
var thisPic = 0;

function keyHit(evt) {
    var myPix = new Array("images/callisto.jpg", "images/europa.jpg","images/io.jpg", "images/ganymede.jpg");
    var imgCt = myPix.length-1;
    var ltArrow = 37;
    var rtArrow = 39;

    if (evt) {
        var thisKey = evt.which;
    }
    else {
        var thisKey = window.event.keyCode;
    }

    if (thisKey == ltArrow) {
        chgSlide(-1);
    }
    else if (thisKey == rtArrow) {
        chgSlide(1);
    }

    function chgSlide(direction) {
        thisPic = thisPic + direction;
        if (thisPic > imgCt) {
            thisPic = 0;
        }
        if (thisPic < 0) {
            thisPic = imgCt;
        }
        document.getElementById("myPicture").src = myPix[thisPic];
    }
}

document.onkeydown = keyHit;这里将keyHit()函数注册为onkeydown事件处理的函数。

var ltArrow = 37;
var rtArrow = 39;左右箭头产生的数字分别是37和39,两个if语句:
if (thisKey == ltArrow) 和else if (thisKey == rtArrow)判断访问者按下的键是左键还是右键,判断之后分别执行相应的操作。

记得注意的是,
if (evt) {
var thisKey = evt.which;
}
else {
var thisKey = window.event.keyCode;
}

理解用户按下了哪个键取决于浏览器,如果是Firefox、chrome或者Safari,就查看evt.which,这个属性包含键的编码。如果是IE浏览器,那么编码包含在window.event.keyCode中。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值