我一直在试图获得一份报告,我们已经使用jasperreports构建了一个报告,并通过visualize.js呈现为在页面上水平居中(无论页面或浏览器的维度如何)。Center visualize.js div content on page
我当前的代码是:
<!DOCTYPE html>
<html>
<head>
<script src="https://mobiledemo.jaspersoft.com/jasperserver-pro/client/visualize.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mootools/1.5.1/mootools-core-full-compat.min.js"></script>
<script type='text/javascript'>
window.addEvent('load', function() {
visualize({
auth: {
name: "joeuser",
password: "joeuser",
organization: "organization_1"
}
}, function(v) {
//render dashboard from provided resource
v("#container").report({
resource: "/public/Samples/Reports/06g.ProfitDetailReport",
scale: "container",
error: handleError
});
//show error
function handleError(err) {
alert(err.message);
}
});
});
</script>
<style>
html,
body {
height: 100%;
width: 100%;
margin: 0 auto;
background-color: #000000;
}
#container {
display: block;
width: 100%;
height: 100%;
border: 0px;
margin: 0 auto;
background: blue;
}
</style>
</head>
<body>
<div id="container"></div>
</body>
</html>
下小提琴应显示当前的问题: https://jsfiddle.net/g207h68x/
如果调整结果窗口中,可以看到,随着报告的比例(通过缩放比例:“容器”条目在渲染功能中粘贴在屏幕左侧
我不能使用<div>
的任何特定尺寸,因为每个仪表板都有其独特的尺寸。报告或仪表板中显示的内容(某些可能是300x500,其他可能高达1920x1080)。
我试图将<div>
包装在柔性盒内部,这似乎没有帮助..除非我没有正确地做(完全可能)。
另一种方法是试图在父div中嵌套div,但那似乎不起作用(再一次,我可能还没有正确地完成它)。
我也尝试使<div>
成为一个内联块,但这看起来完全放弃了visualize.js的缩放,因为它读取容器维度(我认为)。
我查看了visualize.js文档,但实际上没有太多的动态大小和页面间距。
我甚至试图把<div>
放在一个表格中......但是这似乎没有帮助,因为表格单元会跨越页面或容器。
我的确在某处读过JQuery UI可以用来进一步操纵visualize.js正在做什么,但是我找不到任何有关记录位置的示例或引用。
如果有人知道如何集中这种类型的内容,我将非常感谢您的意见。
预先感谢您。
感谢Narcis ...有没有一种方法可以修改它使其更具响应性?如果你调整结果窗格的大小,你可以看到内容并没有真正保持居中......它有点糟透了...... – Buckwheattb
我已经用修改过的解决方案编辑了我的答案。希望能帮助到你! – Narcis
这真是太棒了......正是我所需要的。我也在IE和Edge中测试了它...从我所见过的很好的工作。非常感谢! – Buckwheattb