jquery - 仅在按键按下时运行 CSS 转换 - jQuery

标签 jquery css rotation transform

我有以下 jQuery 代码:

$(document).ready(function(){
    var pane = $(document),         
        box = $("#hero"),               //Our character
        w = pane.width() - box.width(), //Width
        d = {},                         //Empty object
        angle = 0;


        var newr = function(a, b){
            return (a == 37) ? angle += 0.5 : (b == 39) ? angle -= 0.5 : angle;
        }
        $(window).keydown(function(e) { 
            d[e.which] = true;
        });
        $(window).keyup(function(e) { 
            d[e.which] = false; 
        });

        setInterval(function() {
            box.css({
                transform: function(index,value) { return "rotate(" + newr(37, 39) + "deg)"; }
            });
        }, 20);
});

我的目标是在我按下 箭头键时立即激活转换,并在释放键时停止旋转。它现在的样子是不断旋转的。

Here is the fiddle

最佳答案

我自己想通了。它无法正常工作的原因是因为在 newr(a, b) 函数中,我首先检查第一个参数 a == 37,这意味着当我用 37 作为我的第一个参数调用了这个函数——它永远是真的。这是正确的函数:

var newr = function(a, b){
    return (d[a]) ? angle += 0.5 : (d[b]) ? angle -= 0.5 : angle;
 }

关于jquery - 仅在按键按下时运行 CSS 转换 - jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18961563/

相关文章:

javascript - 响应式移动导航栏(导航)jquery/javascript

jquery - 原型(prototype): keep an element in view upon scrolling

html - 如何为位置 : absolute 制作响应式 div

javascript - 使用媒体查询在较小的屏幕上仅滚动模态的距离

android - 使用矩阵旋转时,我失去了图像的位置

javascript - Jquery spinner 旋转事件的值延迟

javascript - Masonry 和 JQuery 重新加载

html - 网站菜单在 IE8 中显示不正确

c - 在 C 中将 ppm 图像向右旋转 90 度

java - 旋转图像(将其恢复到原始位置)