Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用箭头键向右移动子div_Javascript_Jquery - Fatal编程技术网

Javascript 使用箭头键向右移动子div

Javascript 使用箭头键向右移动子div,javascript,jquery,Javascript,Jquery,守则: Html: <div id="Container" class="Container"> <div id="PLayer" class="player" ></div> </div> 但玩家似乎根本没有移动任何建议?您应该让它从当前位置向右移动20像素: $(".Player").animate({ 'right': '+=20px' }); 它将工作,但使用类选择器 $(".Player").animate({ 'right': '

守则:

Html:

<div id="Container" class="Container">
<div id="PLayer"  class="player" ></div>
</div>

但玩家似乎根本没有移动任何建议?

您应该让它从当前位置向右移动20像素:

$(".Player").animate({ 'right': '+=20px' });

它将工作,但使用类选择器

$(".Player").animate({ 'right': '+=20px' });

如果您有多个div,其中Player作为类值,则所有div都将移动。

您必须在id上匹配大小写。您有:

id="PLayer"
以及:

将元素id中的大写字母“L”更改为小写,它将起作用:

…假设您的JavaScript代码位于元素后面的脚本块中,或者您已将其包装在文档就绪处理程序中

还请注意,通过设置
right
属性的动画,您可以设置它与页面右边缘的距离。如果您想让它在当前位置右侧移动20px以上,请执行以下操作:

$("#Player").animate({ 'left': '+=20px' });
也就是说,将20px添加到当前左侧位置。也可以给它一个初始位置:


最后,请注意,您不必测试
e.keyCode
,因为jQuery为您标准化了
e.which
,但是如果您测试
e.keyCode
请记住,JS是区分大小写的,您需要小写的“k”。

哦,该死的,呵呵,是的,您是对的,我修复了它,并且工作得很好,它不会使用大写的“p”-类有一个小写的“p”。谢谢你给出了这个完美的答案,但是我如何做一个测试来检查玩家是否已经超过了父div边界?你可以在执行这行之前通过检查条件来做到这一点。你可以这样得到你的帕伦特div的位置。var a=$(yourparrentDiv.position(),因此在此之后,您可以访问position,如a.top或a.leftyes,您是对的:),但现在我想检查玩家是否超出其父div的边界,我该怎么做?您可以读取父div位置及其大小,然后根据它们计算玩家的顶部和左侧的限制。我懒得在这里做演示:P
id="PLayer"
$("#Player")
$("#Player").animate({ 'left': '+=20px' });