Jquery 如何在所有方向上移动图元?

Jquery 如何在所有方向上移动图元?,jquery,css,jquery-animate,Jquery,Css,Jquery Animate,我知道可以在页面上的X和Y方向对对象进行动画制作,但如果可以在所有方向(如下图中的黄色方向)对对象进行动画制作,请告诉我: 到目前为止,我有一个jquery代码: var position = $("#redBox").position(); switch (e.keyCode) { case 37: $("#redBox").css('left',position.left - 2 +'px');

我知道可以在页面上的X和Y方向对对象进行动画制作,但如果可以在所有方向(如下图中的黄色方向)对对象进行动画制作,请告诉我:

到目前为止,我有一个jquery代码:

 var position = $("#redBox").position();
    switch (e.keyCode)
    {
        case 37:
         $("#redBox").css('left',position.left - 2 +'px');
         break;
        case 38:
         $("#redBox").css('top',position.top - 2 +'px');
         break;
        case 39:
        $("#redBox").css('left',position.left + 2 +'px');
         break;
        case 40:
         $("#redBox").css('top',position.top + 2 +'px');
         break;
    }
这是在X和Y方向移动红色框,但我如何在按下键(37+38)和(39+38)时强制它移动,即使是在黄线方向


谢谢

如果你想向上+向左移动,两种方法都可以

$("#redBox").css({ 'left': position.left - 2 + 'px', 'top': position.top + 2 + 'px'});
或者使用如下动画:

附言


我从这里偷了链接:

当按下箭头键(onkeydown)时,您可以为该键设置一个标志。当释放该键(onkeyup)时,可以取消设置该标志。这样,您将始终知道每个键的状态,并且可以测试onkeydown处理程序(或其他任何地方)中是否按下了任何键的组合


此时,您只需按照bobek所说的操作,同时调整左侧和顶部属性。

谢谢bobek,但我如何使用此处的键?只需跟踪按下的键即可。将它们添加到阵列中,并在需要时清理阵列。看这里:嗯,这对我来说有点困惑!那么,如何在switch语句中同时使用Case 39和38呢?您可以在这里查看如何捕获多个键事件:谢谢Mathias,但我不知道如何使用switch语句中的键!另外,如果您打算制作动画,我建议使用纯javascript而不是jQuery。虽然jQuery可以使编写代码的速度非常快,但它的速度非常慢,而且当您开始每秒执行大量方法调用时,您会注意到这一点。