我正在创建一个键盘,可以在按键时创建div。 (我已经找到了键盘部分)我希望每个div随机放置,同时仍然按字母聚类。我试图通过在现有的“.aclass”顶部和左侧样式中添加1到20之间的随机整数来做到这一点。
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,它会被放置在同一个地方而不是随机。
您在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应该提供什么,但是目前你只是获得该类的第一个元素的位置,这似乎不太可能是你想要的。
这是因为通过这样做你只需要调用一次Math.random()
函数,而每次按下键时你都需要生成一个随机数。
您可以通过确保每次运行Math.random()
时执行createElement()
来尝试这样做。