2017-04-12 64 views
0
$(window).keydown(function(event){ 
    var c = String.fromCharCode(event.which); 
    if (c === 'a'){ 
     myImage.css("height", "+=2"); 
     myImage.css("width", "+=2"); 
    } else if (c === 's'){ 
     myImage.css("height", "-=2"); 
     myImage.css("width", '-=2'); 
    } 
}); 

这是我的代码,我想使图像2个像素较小时,按下S键和2个像素大当一个键被按下。该代码现在不做任何事情。变化大小按

我得到一个警告“使用getpreventdefault的()已过时”,但我不认为这是什么原因造成这一点。

编辑:我应该提到的警告只按下一个键后出现。

+0

我不相信你可以使用' - = 2'作为这样的CSS属性。您可能需要执行数学运算(获取当前大小,减去或加2),然后将该特定宽度应用于图像。作为一个侧面说明,我会专注于设置宽度或高度,并保留其他属性为“自动” - 将大大简化事情。 –

+0

我曾使用的早期版本变种高度= $(MYIMAGE).height()+ 2;和\t myImage.css(“height”,height);仍然没有工作 –

+0

因此,在我的测试中,似乎字母代码以大写形式出现,尽管我没有指定大写 - 请参阅我如何更改IF语句以使此小提琴工作(并且,顺便说一句,你的 - = 2是实际可行的):https://jsfiddle.net/cale_b/5hzqe8o6/ –

回答

0

只要计算的宽度和高度为每个按键。更新宽度和高度。

$(window).keydown(function(e){ 
    var $img = $('#myImg'), 
     key = e.which, 
     height = $img.height(), 
     width = $img.width(); 

    if (key === 65) 
    $img.css("height", height + 2).css("width", height + 2); 
    else if (key === 83) 
    $img.css("height", height - 2).css("width", height - 2); 
}); 

退房的fiddle here的工作示例。如果你需要计算不同的密钥,你可以得到密钥from this sweet codepen