JS實現div動態水平垂直居中


在做頁面的過程中,在很多地方都會遇到元素需要水平垂直的居中這個問題,之前總是去網上搜別人的代碼,今天仔細研究了一下,分享給大家,先寫一個簡單的例子:

<div class="mui-content">
  <div id="logo_wrap">
  </div>
</div>

我就是想把id為logo_wrap的元素整個頁面居中,logo_wrap的樣式#logo_wrap{height: 100px;text-align: center;}

首先水平居中很簡單,如果logo_wrap的寬度是未設置的(100%)的話,通過設置#logo_wrap{text-align:center;}就可以實現水平居中;

如果logo_wrap寬度是有具體的數值的話,可通過設置#logo_wrap{margin:0 auto;}來實現。

其次是垂直居中。分為三步:1.獲取到當前屏幕的高度;2.獲取到需要居中的div的高度;3.用屏幕的高度減去div的高度除以2就是需要給div設置的margin-top的值。

針對上邊的例子的JS代碼:

<script type="text/javascript">
  window.onload=function(){
  var height=document.body.scrollHeight;
  var logo_wrap=document.getElementById("logo_wrap");
  var margin_top=(height-100)/2;       //因為此div在頁面中只用了一次且以后不會改變,所以寫了數值,如果是不確定的,獲取到高度放着這里就可以
  logo_wrap.style.marginTop=margin_top+"px";
  };
</script>

 

 

 


免責聲明!

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



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