我一直在試圖獲得一份報告,我們已經使用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