javascript - 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 时,它都会被放置在同一个地方而不是随机放置。
解决方案
您在 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 应该给出什么,但目前您只会获得该类的第一个元素的位置,这似乎不太可能是您想要的。
推荐阅读
- c# - 无效请求,当我指向我的 URL http://localhost:59185/api/values ...希望取回我的访问令牌而不是得到错误
- java - 服务器遇到了阻止它完成请求的意外情况。HTTP 500
- java - webdriver 无法启动浏览器
- javascript - 使用 addeventListener 条件不起作用
- oracle - PLS-00405:此上下文中不允许子查询
- python - ValueError:无法将字符串转换为浮点数:'France'
- sql - 如何对动态数据透视表进行分组
- javascript - 如何在多个动态创建的输入上使用 Bootstrap Datetimepicker
- sql - 是否可以使用 sp_executesql 创建视图?
- java - 无法在 Windows 10 中的 Docker 上运行 Bamboo 构建规范