javascript - 围绕一个圆圈动态排列一些元素

标签 javascript jquery

我正在寻找一个函数来围绕一个圆圈排列一些元素。
结果应该是这样的:

enter image description here

最佳答案

下面是一些应该对您有所帮助的代码:

var numElements = 4,
    angle = 0
    step = (2*Math.PI) / numElements;
for(var i = 0; i < numElements.length; i++) {
    var x = container_width/2 + radius * Math.cos(angle);
    var y = container_height/2 + radius * Math.sin(angle);
    angle += step;
}

它不完整,但应该给你一个好的开始。


更新:这是实际有效的东西:

var radius = 200; // radius of the circle
var fields = $('.field'),
    container = $('#container'),
    width = container.width(),
    height = container.height(),
    angle = 0,
    step = (2*Math.PI) / fields.length;
fields.each(function() {
    var x = Math.round(width/2 + radius * Math.cos(angle) - $(this).width()/2),
        y = Math.round(height/2 + radius * Math.sin(angle) - $(this).height()/2);
    $(this).css({
        left: x + 'px',
        top: y + 'px'
    });
    angle += step;
});

演示:http://jsfiddle.net/ThiefMaster/LPh33/
这是一个 improved version您可以在其中更改元素数量。

关于javascript - 围绕一个圆圈动态排列一些元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10152390/

相关文章:

jquery - 如何使警报重叠?

jQuery 事件处理程序不适用于附加元素

javascript - 从 PHP 调用 node.js 脚本不返回任何内容

javascript - 在paperjs中在圆段上画线

javascript - 从 Angular 服务调用 Angular 路径以加载新 View 和 Controller

javascript - JQuery 按钮禁用整个网站的 CSS?

jquery - Primefaces 仅更新选定的选项卡

jquery - jQuery AJAX 之后获取新的窗口高度

javascript - 取消选择数据表隐藏复选框

javascript - 重定向到另一个页面: NodeJs