【问题标题】:image appear random position in jquery图像在jquery中出现随机位置
【发布时间】:2017-11-20 21:42:46
【问题描述】:

在 Whack-a-Mole 类项目https://jsfiddle.net/JennyF/vc2dum2y/ 的这一步中,我要让一个痣出现在随机位置的#gamespace 中。这些是说明(sciv 是一个虚拟的 img):

--- 要真正随机移动每颗痣,您需要调用随机数函数!在addMole() 函数中调用每个函数一次并将返回值保存到一个变量中(例如xPosyPos)。现在您有两个随机值,您需要将style 属性添加到鼹鼠img 标记。例如:

<img src="img/scify.jpg" style="" />

在这个style 属性中,您需要添加一个“left”和“top”属性。每个属性的值将是您的随机数。完成后,痣应出现在#gamespace 各处。调整随机函数的值,使痣保持在#gamespace 内。不要复制此代码。将其用作指南。您最终应该得到如下所示的内容:

<img src="scify.jpg" style="top:'+yPos+'px;left:'+xPos+'px;" />----

这是我的鼹鼠功能。他告诉我要确保我所有的引号都关闭了,但我不明白如何在括号内这样做,除非有第三种类型可以使用:

var xPos;
var yPos;
function addMole(){
  $("#gamespace").append('<img src="img/mole.png"style="top:'+xPos+'px; left:'+yPos+'px;" />');
  randPosX();
  randPosY();
  t=setTimeout(addMole, 2000);
}; // end molee

【问题讨论】:

  • JS 不允许换行,除非你有模板文字。使这一行$("#gamespace").append('&lt;img src="img/mole.png" style="top:'+xPos+'px; left:'+yPos+'px;" /&gt;');
  • 还有t=setTimeout(addMole, 2000);
  • 你的小提琴也错了。添加 jQuery 并从 head 而不是 onload 运行:jsfiddle.net/rs0ov4go/1/- 丢失图像。您可以从占位符或 lorempixel 获取图像
  • 对不起,我以为我应该避免滚动条,我不是故意破坏代码。 setTimeout 正在工作。但我会替换它。
  • 我在小提琴中添加了css,抱歉,没看到

标签: javascript jquery random position


【解决方案1】:

默认情况下,元素的position 设置为static。当元素具有此定位时,topleft 属性无效。

您必须将图像的 position 更改为 relative 或类似的东西,才能按您希望的方式放置。

这是一个例子:

$("#gamespace").append('<img src="img/mole.png" style="position:relative; top:'+xPos+'px; left:'+yPos+'px;" />');

这是您的代码的工作版本。

https://jsfiddle.net/k6g6r2wh/

除了定位问题,还有其他一些问题。 您的 randPosXrandPosY 函数确实会生成随机数,但这些数字不会存储在任何变量中,它们只是从函数中返回。您需要使用以下方式存储它们:

var xPos = randPosX();
var yPos = randPosY();

【讨论】:

  • 我们在css中的位置发生了变化,抱歉,没想到要提这个。 div#gamespace{positionn: relative;}div#gamespace img{position:absolute;}
  • @Jenny 除此之外(position),附加到#gamespace 元素的 HTML 没有任何问题。
  • @Jenny 它还有一些问题。如果您将 JavaScript 代码放在 JavaScript 部分,则不需要使用 &lt;script&gt;,您需要使用 External Resources 选项将 jQuery 库添加到小提琴中而且您还没有处理将随机 x 和 y 值存储在变量中的问题。
  • 对不起,我是在记事本里做的,忘记在那里改了。我正在尝试添加它,当我输入它并按 Enter 或单击 + 时没有任何反应
  • @Jenny 如果你已经成功测试了它并且它可以工作,那就足够了,不需要小提琴。
猜你喜欢
  • 1970-01-01
  • 2015-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多