0
我想要獲得任意數量的頂點/左側定位的元素(跨度),將至少距離對方50個像素,以確保一個乾淨的分散。我現在所擁有的代碼如下:jQuery的隨機頂/左定位前DOM
function PositionOK(x, y) {
axisarray.sort(function (a, b) {
return a - b
});
for (var i in axisarray) {
var pos = axisarray[i];
if (Math.abs(x - pos.x) < 50) {
return false;
}
if (Math.abs(y - pos.y) < 50) {
return false;
}
}
return true;
}
for (var xy = 0; xy < termArray.length * 2; xy++) {
var x = Math.floor(Math.random() * 500);
var y = Math.floor(Math.random() * 800);
if (PositionOK(x, y)) {
axisarray.push({
'xaxis': x,
'yaxis': y
});
} else axisarray.push({
'xaxis': x + 50,
'yaxis': y + 50
});
}
輸出示例:
正如你可以看到,它們的分佈並不均勻。有些浮在另一個上面,當它們應該分散至少50px。 任何建議/解決方案?
不,你需要這樣的條款12: 'x軸':X + 50 + '像素'? – pj013
我看到的一個潛在問題是,雖然座標全部相距50px,但這並不意味着每個塊的邊緣距離每個其他邊緣都是50px。由於它只是50px的元素的起源,而不是元素的實際邊框,因此您會看到重疊。我不知道我會如何解決這個問題,但我很確定這是你的問題。 – UpQuark
你必須考慮元素的寬度和高度。 – kei