JS根據offsetHeight修改元素的高度


之前的博文: 測試了offsetHeight獲取的是頁面元素的高度,包裹該元素本身內容的高度,上下padding,上下border。這個獲取的但是px,px是相對單位,受電腦分辨率的影響,用LODOP進行打印的時候,不建議使用px單位,建議使用pt、mm等絕對單位
JS修改某元素的css樣式,可查看本博客另一篇相關博文: 。
首先設置一個div,該div設置初始的樣式,顏色,padding,margin和border。
然后在代碼里設置判斷下元素的高度
如果高度不超過190,則按照原來的樣式顯示
如果高度超過190,則修改div的高度,padding和border。

進入打印設計,可以看出用JS修改的樣式最后會變成行內樣式,行內樣式的優先級比較高,行內樣式可以用於修改style標簽中的樣式或外部樣式。

該div元素.style.height:指的是設置div的內容高度
offsetHeight獲取的:是指div內容高度+padding+border的高度。

測試代碼:

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>WEB打印控件LODOP</title>
<script language="javascript" src="LodopFuncs.js"></script>
<style>#D1{background-color:#bbf1f2;padding:50px;margin:11px;border:10px solid blue;}</style>
</head>
<body>
<textarea id="ta1" rows=10 cols=70></textarea>
<div id="prn">
<div id="D1">這里顯示內容</div>
</div>
<a href="javascript:prn_p1()">點擊設置內容</a><br>
<a href="javascript:prn_p2()">點擊進入打印設計</a><br>
<script language="javascript" type="text/javascript">   
        var LODOP; //聲明為全局變量 
  function prn_p1(){
      var T1=document.getElementById("D1");
      var T1_txt=document.getElementById("ta1").value;
      T1.innerHTML=T1_txt;
      console.log("D1的上下左右:top:"+D1.offsetTop+",left:"+D1.offsetLeft+",width:"+D1.offsetWidth+",height:"+D1.offsetHeight);
      if(D1.offsetHeight>190)
      {T1.style.height="190px";T1.style.padding="10px";T1.style.border="3px solid blue";T1.style.overflow="hidden";
      console.log("D1的上下左右:top:"+D1.offsetTop+",left:"+D1.offsetLeft+",width:"+D1.offsetWidth+",height:"+D1.offsetHeight);}
  };
function prn_p2(){//超文本不建議用px作為單位,建議用pt、mm等絕對單位,避免分辨率的影響
  console.log("D1的上下左右:top:"+D1.offsetTop+",left:"+D1.offsetLeft+",width:"+D1.offsetWidth+",height:"+D1.offsetHeight);
  LODOP=getLodop();
  LODOP.PRINT_INIT("");
  var style1="<style>#D1{background-color:#bbf1f2;padding:50px;margin:11px;border:10px solid blue;}</style>";
  LODOP.ADD_PRINT_HTM(0,0,"100%","100%",style1+document.getElementById("prn").innerHTML);
  LODOP.PRINT_DESIGN();
//  LODOP.PREVIEW();
};
</script> 
</body>

圖示:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM