我正在尝试在 div 框中的椭圆中排列一堆不同大小的 div。
这是我到目前为止所拥有的:
var stage = $('#stage');
$('#middle').css('top', stage.outerHeight() / 2 - $('#middle').outerHeight() / 2 + 'px');
$('#middle').css('left', stage.outerWidth() / 2 - $('#middle').outerWidth() / 2 + 'px');
drawEllipse(".block", stage.outerHeight() / 2, stage.outerWidth() / 2, stage.outerHeight() / 2, stage.outerWidth() / 2, 360);
function drawEllipse(selector, x, y, a, b, angle) {
var steps = $(selector).length;
var i = 0;
var beta = -angle * (Math.PI / 180);
var sinbeta = Math.sin(beta);
var cosbeta = Math.cos(beta);
$(selector).each(function(index) {
i += (360 / steps);
var alpha = i * (Math.PI / 180);
var sinalpha = Math.sin(alpha);
var cosalpha = Math.cos(alpha);
var X = x + (a * cosalpha * cosbeta - b * sinalpha * sinbeta);
var Y = y + (a * cosalpha * sinbeta + b * sinalpha * cosbeta);
X = Math.floor(X);
Y = Math.floor(Y);
if (X > stage.outerHeight() / 2)
$(this).css('top', X - $(this).outerHeight() + 'px');
else
$(this).css('top', X + 'px');
$(this).css('left', Y - $(this).outerWidth() / 2 + 'px');
});
起点是https://github.com/addyosmani/js-shapelib/blob/master/jquery.shapelib.js
如何防止 div 的重叠和溢出框?