首页 > 解决方案 > Math.random() 生成单个随机数

问题描述

我正在创建一个在按键时创建 div 的键盘。(我已经弄清楚了键盘部分)我希望每个 div 随机放置,同时仍然按字母聚集。我试图通过将 1 到 20 之间的随机整数添加到现有的“.aclass”顶部和左侧样式来做到这一点。

var min=1; 
var max=20;  
var random = Math.floor(Math.random() * (+max - +min) + +min);
var newtopa= $('.a').position().top + random;
var newlefta = $('.a').position().left + random;

function createElement(k) {  
  if (k == "a" || k == "A") { 
    $(".aclass").append('<div class="a" style="top:'+newtopa+'px;left:'+newlefta+'px;"></div>');
  }

但是,我的 Math.random 行只返回一个随机数。每次我按“a”并创建一个 div 时,它都会被放置在同一个地方而不是随机放置。

标签: javascriptjqueryrandom

解决方案


您在 createElement 函数之外声明随机数,因此您只创建一个,然后在每次调用 createElement 时使用它。

var min=1; 
var max=20; 

function createElement(k) {  

    var random = Math.floor(Math.random() * (+max - +min) + +min);
    var newtopa= $('.a').position().top + random;
    var newlefta = $('.a').position().left + random;
    if (k == "a" || k == "A") { 
        $(".aclass").append('<div class="a" style="top:'+newtopa+'px;left:'+newlefta+'px;"></div>');
    }

此外,您没有指定 newtopa 和 newlefta 应该给出什么,但目前您只会获得该类的第一个元素的位置,这似乎不太可能是您想要的。


推荐阅读