2016-04-04 11 views
-2

Es gibt einen Kreis und einige Objekte um sie herum. Die Objektnummer kann von 1 bis n (dynamisch) abweichen.Bildposition nach Bildzählung berechnen

Wie kann ich alle diese Objekte automatisch um den Kreis legen?

Tnx im Voraus.

+0

Die Bilder in Ihre Beispiele zeigen nicht – Goombah

+3

das Zentrum der Welt finden, die Entfernung zum Zentrum (Radius) übersetzen und drehen mit 360 °/nrOfImages und wiederholen Sie für alle Bilder ? Mein Problem mit Ihrer Frage wäre, dass Sie keine Mühe in was Sie bisher versucht haben zeigen (außer die Frage zu stellen?) – Icepickle

Antwort

2

Hier ist ein Weg, es zu tun. Ich habe Kommentare im Code hinzugefügt, um die Schritte zu erklären. Ich habe mir die Freiheit genommen, nur farbige Divs anstelle von Bildern zu verwenden, aber der Effekt ist der gleiche.

// Editor to change the number of persons dynamically 
 
var nr = document.getElementById('nr'); 
 
nr.addEventListener('keyup', function(){updatePersons();}); 
 

 
// The globe 
 
var globe = document.getElementById('globe'); 
 

 
// A function to reinitialize the persons 
 
function updatePersons() { 
 
    var personCount = parseInt(nr.value); 
 
    
 
    globe.innerHTML = ''; // A bit dirty way to remove all previous peeps 
 
    
 
    // Just add them in a loop, and apply a transformation. 
 
    for (var i = 0; i < personCount; i++) { 
 
    var person = document.createElement('div'); 
 
    person.className = 'mens'; 
 
    var rotation = i * (360/personCount); 
 
    console.log(rotation); 
 
    person.style.transform = 'translate(125px, -100px) rotate(' + rotation + 'deg)'; 
 
    globe.appendChild(person); 
 
    } 
 
} 
 

 
// Initial positioning of persons. 
 
updatePersons();
#nr { 
 
    position: relative; 
 
    z-index: 1; 
 
} 
 

 
.corea { 
 
    background-color: blue; 
 
    border-radius: 50%; 
 
    width: 300px; 
 
    height: 300px; 
 
    position: relative; 
 
} 
 

 
.mens { 
 
    position: absolute; /* Needed, otherwise they influence each other */ 
 
    width: 50px; 
 
    height: 100px; 
 
    background-color: red; 
 
    transform-origin: 25px 250px; 
 
    
 
    /* Transform is set in Javascript */ 
 
    x-transform: translate(125px, -100px) rotate(180deg); 
 
}
<input id="nr" value="5"> 
 
<div id="globe" class="corea"> 
 
</div>

+0

Tnx viel Kumpel .. –

+0

[Ich bin nicht dein Kumpel, Typ!] (Http: // 9gag.com/gag/aeNP3X5) ;-) – GolezTrol

+0

danke trotzdem GolezTrol ... –

Verwandte Themen