2017-08-11 70 views
5

Pracuję nad aplikacją digital signage w HTML5, w której będę miał ekran, który będzie odtwarzał/wyświetlał różne media według użytkownika. Mam wiele elementów, takich jak wideo, obrazy, widżety, ticker itp. Mam oś x-y elementów i ich wysokość/szerokość, chcę je ułożyć dokładnie na podstawie podanych informacji. Otrzymam dane w xml/json.Jak rozmieścić wiele elementów html na podstawie współrzędnych x-y i szerokości-wysokości?

Próbowałem z prostym CSS, ale nie działa zgodnie z oczekiwaniami. Próbowałem SVG i Canvas, ale nie obsługują one wszystkich elementów HTML.

+0

CSS pozycję ': absolute; left: X; top: Y; szerokość: w ; height: h' - oczywiście, 'x, y, w, h' są" zmiennymi ", więc nie przyjmuj tego, że CSS jest dokładnie tym, czego używałeś, musisz dokonać odpowiednich podstawień. –

+0

Co powiesz na [ mcve]? – zer00ne

Odpowiedz

1

można po prostu elementy pozycję za pomocą absolute z javascript:

function absElement(type, x, y, w, h) { 
    let d = document.createElement(type); 
    d.style.position = "absolute"; 
    d.style.left = x + "px"; 
    d.style.top = y + "px"; 
    d.style.width = w + "px"; 
    d.style.height = h + "px"; 
    document.body.appendChild(d); 
    return d; 
} 

Wtedy można go używać jak

absElement("img", 100, 200, 400, 200).src = "myimage.jpg"; 
+0

Jeśli zestaw przodków nie jest ustawiony ... w przeciwnym razie 'position: fixed' będzie potrzebna. (Wiem, że w twoim przykładzie dodajesz "ciało", ale być może trzeba umieścić je gdzieś indziej w drzewie). – Kaiido

+0

To działa. Dzięki. –