div边界jQuery

div边界jQuery,jquery,Jquery,您可以自己测试此代码的功能 现在我的问题是我是否会有另一个div标签,比如一个框架。我该如何使#moveMe在frame div中移动?在每次移动后检查边界,以便图形不会移动到帧外 有人现在怎么办 编辑:从链接添加代码 HTML 如果从设置边距动画更改为设置左上方动画,则使用.position()测试条件会更容易 测试它是否小于零或大于父级宽度/高度-它的宽度/高度 如果不是,则按常规设置动画,如果设置为“边” 你也应该考虑改变放松,当你按住它时,运动有点奇怪 if (e.keyCode ==

您可以自己测试此代码的功能

现在我的问题是我是否会有另一个div标签,比如一个框架。我该如何使#moveMe在frame div中移动?在每次移动后检查边界,以便图形不会移动到帧外

有人现在怎么办


编辑:从链接添加代码

HTML


如果从设置边距动画更改为设置左上方动画,则使用.position()测试条件会更容易

测试它是否小于零或大于父级宽度/高度-它的宽度/高度

如果不是,则按常规设置动画,如果设置为“边”

你也应该考虑改变放松,当你按住它时,运动有点奇怪

if (e.keyCode == 37) { 
  if($("#moveme").position().left >= 100)
  {
   $("#moveMe").animate({left: "-=100px"}, {queue:false});
  }
  else
  {
   $("#moveMe").animate({left: 0}, {queue:false});
  }
   return false;
}

if (e.keyCode == 39) { 
  if($("#moveMe").position().left <= 
      $("#moveMe").parent().width() - $("#moveMe").width() - 100)
  {
     $("#moveMe").animate({left: "+=100px"}, {queue:false});
  }
  else
  {
     $("#moveMe").animate(
       {left: $("#moveMe").parent().width() - $("#moveMe").width()},
       {queue:false});
  }
   return false;
}
如果(e.keyCode==37){
if($(“#moveme”).position().left>=100)
{
$(“#moveMe”).animate({left::-=100px},{queue:false});
}
其他的
{
$(“#moveMe”).animate({left:0},{queue:false});
}
返回false;
}
如果(e.keyCode==39){

if($(“#moveMe”).position().left是的,但如果我有一个,那就是我想要的。在frame div内。如何更改缓和,我承认移动..parent()时有点奇怪应该处理任何父元素。尽管我应该注意到父元素应该是相对的或绝对的,以使事情正常运行。至于easing,您应该将其添加到选项{queue:false,easing:'linear'}所以基本上我可以直接使用你的代码,在moveMe div周围放置一个具有特定宽度和高度的div,它应该可以工作吗?是的,相对元素可以很容易地更改html,而无需更改jquery,看起来它是一个缺少的$,100改为20(这很好,只需在两个位置进行更改,将两者都设置为100)
<body>
  <div id="moveMe"></div>
</body>
if (e.keyCode == 37) { 
  if($("#moveme").position().left >= 100)
  {
   $("#moveMe").animate({left: "-=100px"}, {queue:false});
  }
  else
  {
   $("#moveMe").animate({left: 0}, {queue:false});
  }
   return false;
}

if (e.keyCode == 39) { 
  if($("#moveMe").position().left <= 
      $("#moveMe").parent().width() - $("#moveMe").width() - 100)
  {
     $("#moveMe").animate({left: "+=100px"}, {queue:false});
  }
  else
  {
     $("#moveMe").animate(
       {left: $("#moveMe").parent().width() - $("#moveMe").width()},
       {queue:false});
  }
   return false;
}