Witaj,
mam następujący problem. Chcę w oknie przeglądarki zmieścić określoną (nie zawsze tą samą) liczbę kwadratów. Napisałem pewną funkcję, ale ona nie zawsze działa poprawnie i dlatego prosiłbym Cię o pomoc. W niektórych sytuacjach kwadraty uciekają poza wyznaczony obszar (window.innerWidth, window.innerHeight). Przygotowałem także demo, aby pokazać o co dokładnie mi chodzi (jeżeli wszystkie niebieskie zmieściły się wczerwonym obszarze to proszę, zmniejsz/zwiększ "output").
http://jsbin.com/zagebomitu/edit?js,output
var width = window.innerWidth;
var height = window.innerHeight;
var count = 26;
var size = cardSize(count);
function cardSize(cardCount) {
var cardMargin = 26;
var tmp = height * width / cardCount;
tmp = Math.floor(Math.sqrt(tmp));
var perLineWidth = Math.round(width / tmp);
var sizeWidth = Math.floor(width / perLineWidth - cardMargin);
var perLineHeight = Math.round(height / tmp);
var sizeHeight = Math.floor(height / perLineHeight - cardMargin);
return Math.min(sizeWidth, sizeHeight, 150);
}