• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Tworzenie obiektów w dowolnym położeniu

Object Storage Arubacloud
0 głosów
83 wizyt
pytanie zadane 6 maja 2017 w JavaScript przez kenjiro244 Dyskutant (8,600 p.)
Witam mam taki pewien problem. Dla uproszczenia załóżmy że mam div-a a wielkość 10 na 10px. I teraz chciałbym w nim stworzyć kilka kwadratów o wielkościach 1na1px na różnych pozycjach dodatkowo muszą to być div-y. I czy jest lepszy sposób na to niż stworzenie 100 div-ów, ponumerowanie ich za pomocą id i wyszukiwanie odpowiedniego?

1 odpowiedź

0 głosów
odpowiedź 6 maja 2017 przez Tomek Sochacki Ekspert (227,510 p.)
Pytanie co chcesz osiągnąć przez takie tworzenie div? Jeśli chodzi o kwestie wizualizacji jakiś graficznych "kwadratów" to dlaczego w ogólne na div'ach? Polecałbym raczej pomyśleć o canvas, ewentualnie svg (zależy co potem chcesz z tym robić).

A jeśli już koniecznie div to możesz ewentualnie stworzyć tylko kilka div (tyle ile potrzebujesz) i dla elementu nadrzędnego dać position: relative, a dla tych "małych" position: absolute i odpowiednio bawić się pozycjonowaniem (top, left, right, bottom).

A i jeszcze jedno... jeśli chcesz już bawić się na div to zapewne będziesz im nadawał background-color i być może też border. Jeśli tak to wyguglaj sobie hasło box-sizing: border-box (jest sporo o tym w sieci więc nie będę tutaj wszystkiego omawiał).

Pozdrawiam
komentarz 6 maja 2017 przez kenjiro244 Dyskutant (8,600 p.)

Jeśli chodzi co chcę osiągnąć to ma być to coś w rodzaju mapy na której w odpowiednich miejscach tutaj kwadraciki 1x1 pojawi się wioska. Oczywiście wszystko będzie większe i tak ten mały kwadrat będzie miał 50x50px i swoją własną grafikę. Coś w stylu mapy z gier przeglądarkowych typu plemiona Link.

komentarz 6 maja 2017 przez Tomek Sochacki Ekspert (227,510 p.)
No to może tym bardziej canvas? Na canvas możesz pobierać współrzędne myszy względem elementu canvas co pozwala na pewnego rodzaju interaktywność.
komentarz 6 maja 2017 przez kenjiro244 Dyskutant (8,600 p.)

Zrobiłem to tak:

for(var obj in data)
           {
               var square =  map_warapper.appendChild(document.createElement('div'));
               square.classList.add('village_square');
               square.style.top = data[obj].pos_y * 50 + 'px';
               square.style.left = data[obj].pos_x * 50 + 'px';
           }

Gdzie data są to dane otrzymywane z bazy danych przez ajax. Teraz w prosty sposób mogę dodać do każdego elementu addEventListener który będzie wykonywał jedną funkcję z parametrem którym jest ID wioski z bazy danych.

Podobne pytania

0 głosów
0 odpowiedzi 260 wizyt
0 głosów
1 odpowiedź 187 wizyt
pytanie zadane 21 marca 2021 w JavaScript przez Kubs Mądrala (5,190 p.)
+3 głosów
3 odpowiedzi 599 wizyt

92,556 zapytań

141,403 odpowiedzi

319,559 komentarzy

61,942 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...