Недавно я возился с Raphael.js и столкнулся с проблемой, связанной с положением каждого объекта Raphael.
Я хочу создать произвольное количество «холстов», но расположить их в элементе div, уже размещенном на странице. Я пытался найти способ заставить их вести себя как элемент блока, но не нашел ответа. Каждый новый объект Рафаэля находится вне любого div.
Вот HTML:
...
#content{height:100%; width:980px; margin:0 auto;}
</style>
</head>
<body>
<div id="content"></div>
...
и JavaScript:
var previews = [];
var prevSize = 25;
var spacing = 10;
//get container
var container = document.getElementById('content');
//get container width
var containerWidth = parseInt(getComputedStyle(container,"").getPropertyValue('width'));
var prevsPerRow =containerWidth/(prevSize+spacing);
var rowsPerPage = 20;
for(var y=0; y<rowsPerPage-1; y++){
for(var x=0; x<prevsPerRow; x++){
var preview = Raphael((x*prevSize)+(x*spacing), (y*prevSize)+(y*spacing),prevSize, prevSize);
previews.push(preview);
}
}
for(var x=0; x<previews.length-1; x++){
var temp = previews[x];
var rectangle =temp.rect(0,0,prevSize,prevSize);
rectangle.attr('fill','black');
}
Одним из решений, которое я рассматривал, было просто добавление смещения желаемого div к координатам x и y объекта, но это не кажется лучшим решением.
Спасибо за помощь!
edit: вот jsfiddle, чтобы помочь объяснить, что именно я имею в виду.
http://jsfiddle.net/xpNBr/