Estoy buscando una función para organizar algunos elementos alrededor de un círculo.
resultado debería ser algo como:Organice dinámicamente algunos elementos alrededor de un círculo
Respuesta
Aquí hay un código que debe ayudarle a:
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;
}
No es completa, pero debe darle un buen comienzo.
Actualización: Aquí hay algo que realmente funciona:
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;
});
Demostración: http://jsfiddle.net/ThiefMaster/LPh33/
He aquí un improved version donde se puede cambiar el contador de elementos.
¿cómo sabes dónde está el ciclo? – Omid
Debe agregar las coordenadas del círculo y restar la mitad de las dimensiones del elemento, de 'x' y' y' usted mismo. –
He actualizado la respuesta para incluir un ejemplo de trabajo. – ThiefMaster
Para un elemento alrededor de un centro en (x, y), distancia r, el centro del elemento debe ser posicionado en:
(x + r cos(2kπ/n), y + r sin(2kπ/n))
donde n es el número de elementos y k es el "número" del elemento que está posicionando actualmente (entre 1 y n inclusive).
He combinado violín de ThiefMaster con el plugin jQuery pointAt:
Demostración: http://jsfiddle.net/BananaAcid/nytN6/
the code is somewhat like above.
might be interesting to some of you.
he modificado violín de ThiefMaster para distribuir automáticamente divs alrededor de un círculo con radio igual a la anchura/2 del contenedor div:
<div class="circle-distribute-container">
<div class="circle-element">one</div>
<div class="circle-element">two</div>
<div class="circle-element">three</div>
<div class="circle-element">four</div>
<div class="circle-element">five</div>
</div>
<div class="circle-distribute-container">
<div class="circle-element">another one</div>
<div class="circle-element">another two</div>
<div class="circle-element">another three</div>
<div class="circle-element">another four</div>
</div>
Ver link
- 1. Organizar dinámicamente Botones alrededor de un círculo
- 2. ¿Girar imágenes alrededor de un círculo?
- 3. Android dibuja un círculo alrededor del texto
- 4. dibujando un círculo de radio R alrededor de un punto
- 5. Lienzo HTML: trazo punteado alrededor del círculo
- 6. Agregando elementos dinámicamente a un JComboBox
- 7. WPF - Borde alrededor de un control de elementos
- 8. Dibuje un círculo con un radio y puntos alrededor del borde
- 9. Android Cambiando dinámicamente el tamaño del círculo, solo la mitad del círculo se actualiza correctamente
- 10. use CAEmitterLayer para dibujar partículas alrededor de un círculo o CGPath
- 11. ordenando listas de acuerdo con algunos elementos
- 12. Dibuja parte de un círculo
- 13. Sencha Touch agregar elementos dinámicamente
- 14. Encontrar si un círculo está dentro de otro círculo
- 15. CSS jQuery() para los elementos creados dinámicamente
- 16. Javascript para agregar un atributo personalizado a algunos elementos
- 17. UIImage en un círculo
- 18. dibujar un círculo lleno
- 19. Vincular eventos a elementos añadidos dinámicamente
- 20. Transiciones de CSS3 a elementos creados dinámicamente
- 21. Excanvas para elementos de lienzo creados dinámicamente
- 22. Eliminación del borde fino alrededor de los elementos de menú
- 23. elementos de arrastre alrededor con efecto de la gravedad
- 24. Posiciona los iconos en el círculo
- 25. knockout data-bind en elementos generados dinámicamente
- 26. Agregue dinámicamente elementos a una listaVer Android
- 27. Cómo dibujar un círculo lleno en Java?
- 28. Línea negra debajo de algunos elementos de ListView
- 29. ¿Cómo dibujar un círculo transparente?
- 30. trazar un círculo con pyplot
@camus mi verdadero problema es que no conozco la trigonometría;) – Omid
solo para 4 elementos o para 'n' elementos a la misma distancia? – Neysor
@Neysor 'n' elemento con diferente distancia. – Omid