Na forum 4programmers.net korzystamy z plików cookies. Część z nich jest niezbędna do funkcjonowania
naszego forum, natomiast wykorzystanie pozostałych zależy od Twojej dobrowolnej zgody, którą możesz
wyrazić poniżej. Klikając „Zaakceptuj Wszystkie” zgadzasz się na wykorzystywanie przez nas plików cookies
analitycznych oraz reklamowych, jeżeli nie chcesz udzielić nam swojej zgody kliknij „Tylko niezbędne”.
Możesz także wyrazić swoją zgodę odrębnie dla plików cookies analitycznych lub reklamowych. W tym celu
ustaw odpowiednio pola wyboru i kliknij „Zaakceptuj Zaznaczone”. Więcej informacji o technologii cookie
znajduje się w naszej polityce prywatności.
Witam ! Mam pewien problem. Mianowicie wykonuje to co dodaj w linku. Okrąg ma się kręcić ( co już mam ) w środku ma byc obrazek ( to też mam ) , a do okoła takie jak widać małe nagłówki z którymi mam problem bo nie wiem jak je dodać. Ktoś jest w stanie mi pomóc ? :) chciałam to umieścic w jakimś containerze i po prostu umeiszczac tekst w span w jakiejs odleglosci od krawedzi ale cos sie pokopało i już nie potrafię do tego dojść. :/
Dziwny pomysł dość ale najbezpieczniej wydaje mi się zrobić kontener o stałych rozmiarach i do tego position: absolute na nagłówkach. Masz wtedy dowolne sterowanie pozycją elementów, bo tak na relatywnych pozycjach będzie ciężkawo.
Tak w kwestii tych kropek kręcących się - nie słyszałeś nigdy o SVG? Ew. JavaScript żeby te elementy wygenerować? Bo pisać 120 elementów i do tego CSS to powiem Ci, że hardcor...
0
Ja na swoje potrzeby opracowałem coś takiego:
// wymagane jQuery !
var round_allow = false; // dla dynamicznego zawieszenia obrotu (np w przypadku eventu hover na elemencie)
var elements_count= 5; // liczba elementow do obracania
var rou = 6.3;
var l = rou;
var r = 160; // promien kola na ktorym maja sie krecic elementy
var square_wid = 400; // bok kwadratu #parent_div
var item_wid = 204; // bok kwadratu elementu #cpi_
var square_margin_left = 0;
var square_margin_top = 0;
function generate_elements(n){
elements_count = n;
$('body').append("<div style='width:"+square_wid +"px;height:"+square_wid +"px;position:fixed;top:50%;left:50%;margin-left:"+(square_wid /2)+"px;margin-top:"+(square_wid /2)+"px;'><div style='width:100%;height:100%;position:relative;' id='parent_div'></div></div>");
for(x=0;x<n;x++){
$('#parent_div').append("<div id='cpi_"+x+"' class='element' style='width:"+item_wid"px; height:"+item_wid+"px;position:absolute;background-color:red;border-radius:50%;'></div>");
}
}
function menu_round(){
if(round_allow==true){
var c_obj = elements_count;
var d_obj = rou/c_obj;
for(c=0; c<c_obj; c++){
l2 = l+(d_obj*c);
var px = r*Math.sin(l2);
var py = r*Math.cos(l2);
$O = $('#cpi_'+c); // ID elementu, ktory ma sie obracac
$O.css("left", ((square_margin_left+(square_wid/2)+px)-(item_wid/2))+'px');
$O.css("top", ((square_margin_top+(square_wid/2)+py)-(item_wid/2))+'px');
}
l -= 0.005; // aby zmienic kierunek obrotu, zamiast -= daj +=
if(l<0) l = rou; // a tutaj daj if(l>=rou) l = 0;
}
}
setInterval(function(){ menu_round(); }, 10);
Dla swoich potrzeb nadaj odpowiednie style dla elementow :) mam nadzieje ze pomoglem choc troszke :) w razie pytan/dalszej pommocy z checia odpowiem.
Tutaj na filmiku widac jak dziala to obracajace sie menu
Uwaga: na urzadzeniach mobilnych a zwlaszcza po przyblizeniu widoku obrot zwalnia (nie wiem czemu) a czasem chodzi skokami jak by sie zawieszalo
polecam template strings z ES6, ładniej by wyglądało:
`<div style='width:${square_wid}px;height:${square_wid}px;position:fixed;top:50%;left:50%;margin-left:${square_wid /2}px;margin-top:.. i tak dalej....................`