JQuery 通过方向键控制div上下左右移动

在CSS中当DOM元素的position属性为absolute或relative时,我们可以通过改变这个元素的left和top属性的具体值来控制元素在页面中显现的位置。

利用上述属性,我们可以简单实现一个元素在页面中的移动效果,这里我们采用JQuery的animate方法来实现动画效果,利用keydown监听方向键按下的事件(这里采用keydown而不是keyup,是为了能够在方向键被一直按着时,元素一直移动,keydown是监听按下事件,keyup是监听按键释放事件)。这里我们还可以利用animate方法的一个特点,就是当其属性的值为'+='或'-='之类时,它会根据原先的值先进行计算,再赋给相应的属性,这个和C++的运算符是一致的。

示例代码如下所示:

$(document).keydown(function(event){
        var keyNum = event.which;   //获取键值
        var Item = $('#switcher');   //要移动的元素
        Item.css({position:'relative'});  //设置position
        switch(keyNum){  //判断按键
        case 37: Item.animate({left:'-=20px'});break;
        case 38: Item.animate({top:'-=20px'});break;
        case 39: Item.animate({left:'+=20px'});break;
        case 40: Item.animate({top:'+=20px'});break;
        default:
            break;
        
        }
    });