题
我有伯特创建图表和我要添加一些标签上它来指定由2个红色标记物(参见下图)限定的4个区域,在每个象限中一个标签(居中如果可能的话)。
我寻找一个解决方案做到这一点,直接使用BIRT图表编辑器或者通过使用一个JavaScript(如我已为红色标记完成)。
解决方案
为了动态地居中一些类型的标签在图的每个象限,你必须具有计算坐标的某种方式。当然,我不是很熟悉,伯特和我做这样的假设图的红色标记会有所不同。
总之,假设你可以得到的坐标,你可以写,将基于几个参数动态生成标签的功能:
function generateLabel(sContent, iXoffset, iYoffset) {
var eLabel = document.createElement('span');
eLabel.appendChild(document.createTextNode(sContent));
var eDivision = document.createElement('div');
eDivision.appendChild(eLabel);
eDivision.style.left = iXoffset + 'px';
eDivision.style.top = iYoffset + 'px';
// include other styles here...
return eDivision;
}
,然后从那里,可以调用与该组标签内容这个函数和偏移坐标:
var eQuadrantOneLabel = generateLabel('Quadrant One', 10, 25);
// and so on...
然后,只需将元素添加到图形的容器(假设是具有,比方说,一个id
graph
):
var eGraphContainer = document.getElementById('graph');
eGraphContainer.appendChild(eQuadrantOneLabel);
// and so on for each label...
不隶属于 StackOverflow