window.print()打印根據(jù)高度設(shè)置居中顯示和布局(縱向橫向)
1.頁(yè)面定義打印div按鈕:
<!-- 打印機(jī)按鈕開(kāi)始 -->
<div style="position: absolute;top:100;right:0px;z-index: 9999;background-color:#EDEDED">
<span id="printBtn" class="fa fa-print hidden-print" title="打印" style="float:left;font-size:24px;cursor:pointer;"></span>
</div>
<!-- 打印機(jī)按鈕結(jié)束 --> 2.js中寫按鈕的監(jiān)聽(tīng)事件、打印之前設(shè)置頁(yè)面樣式的方法
//點(diǎn)擊打印,調(diào)出答應(yīng)機(jī)的方法
$("#printBtn").click(function(){
onbeforePrint(); //在打印之前執(zhí)行的方法(目的是修改打印頁(yè)的樣式)
window.print();
});
//在打印之前執(zhí)行的方法(目的是修改打印頁(yè)的樣式)
function onbeforePrint(){ //先獲取div的高度,當(dāng)高度小于800px時(shí),需要設(shè)置距離頂部的值,大于800則已經(jīng)鋪滿整個(gè)A4紙,不用設(shè)置
var style = document.createElement('style');
var mapHeight = $("#map").height();
var marginTop = "0mm";
if(mapHeight < 800){
var temp = 800 - parseInt(mapHeight);
marginTop = (temp/8).toFixed(2)+"mm";
}
style.innerHTML = "@page{size: landscape;margin: auto 0mm;margin-top:"+marginTop+"}";
window.document.head.appendChild(style);
}3.對(duì)設(shè)置參數(shù)進(jìn)行解釋
- @page:打印頁(yè)的樣式名稱
- size:portrait;(縱向)
- size:landscape;(橫向)
- margin:auto 0mm; (上下設(shè)置為自動(dòng)居中,左右邊距為0)
- mapHeight :獲取到div的高度,對(duì)高度進(jìn)行判斷,是否大于800px,大于則不處理(已經(jīng)鋪滿A4紙),不大于則做差計(jì)算距離頂部的高度值(mm毫米)
- style = document.createElement('style'):創(chuàng)建一個(gè)style樣式
- style.innerHTML = "@page{size: landscape;margin: auto 0mm;margin-top:"+marginTop+"}":給樣式設(shè)置值
- window.document.head.appendChild(style):把樣式添加到窗口中
4.效果演示
小屏幕:

大屏幕:

選擇布局和紙張尺寸,打印預(yù)覽會(huì)重新加載:

到此這篇關(guān)于window.print()打印根據(jù)高度設(shè)置居中顯示和布局(縱向橫向)的文章就介紹到這了,更多相關(guān)window.print()打印內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用js驗(yàn)證hash,content hash , chunk hash的區(qū)別解
crypto-js是一個(gè)JavaScript加密算法庫(kù),用于實(shí)現(xiàn)各種加密算法和哈希函數(shù),它提供了一種簡(jiǎn)單而強(qiáng)大的方式來(lái)執(zhí)行加密操作,包括對(duì)稱加密算法、非對(duì)稱加密算法和哈希函數(shù)等,本文給大家介紹使用js驗(yàn)證hash,content hash , chunk hash的區(qū)別解析,感興趣的朋友跟隨小編一起看看吧2024-12-12
js金額數(shù)字格式化實(shí)現(xiàn)代碼(加減逗號(hào)處理)
這篇文章主要介紹了js中將數(shù)字格式化為金額的方法,使用加減逗號(hào)處理金額,一個(gè)格式化金額的代碼,有需要的朋友參考下2014-04-04
js插件YprogressBar實(shí)現(xiàn)漂亮的進(jìn)度條效果
ProgressBar.js 是一個(gè)借助動(dòng)態(tài) SVG 路徑的漂亮的,響應(yīng)式的進(jìn)度條效果。使用 ProgressBar.js 可以很容易地創(chuàng)建任意形狀的進(jìn)度條。這個(gè) JavaScript 庫(kù)提供線條,圓形和方形等幾個(gè)內(nèi)置的形狀,但你可使用 Illustrator 或任何其它的矢量圖形編輯器創(chuàng)建自己的進(jìn)度條效果。2015-04-04
js實(shí)現(xiàn)數(shù)組轉(zhuǎn)換成json
本文給大家分享的是使用javascript實(shí)現(xiàn)的數(shù)組轉(zhuǎn)換json的代碼,非常簡(jiǎn)單實(shí)用,相當(dāng)于JSON.stringify(array);,有需要的小伙伴可以參考下。2015-06-06
JS實(shí)現(xiàn)動(dòng)態(tài)生成html table表格的方法分析
這篇文章主要介紹了JS實(shí)現(xiàn)動(dòng)態(tài)生成html table表格的方法,結(jié)合實(shí)例形式分析了javascript針對(duì)數(shù)組數(shù)據(jù)的讀取、遍歷以及動(dòng)態(tài)生成相關(guān)操作技巧,需要的朋友可以參考下2018-07-07

