讓html元素隨瀏覽器的大小自適應垂直居中的實現(xiàn)方法
表格可以實現(xiàn)td中的元素垂直居中顯示,但是前提條件必須定義td的高才可行。
但是很多時候會用到元素跟隨瀏覽器的大小垂直居中,如在制作展示官網(wǎng)、活動展示網(wǎng)等等的時候。
問題:
實現(xiàn)div垂直居中并在縮放瀏覽器尺寸的時候仍然居中。
解決方案:
1、瀏覽器可視區(qū)域的高度-元素的高度/2 = 元素距離瀏覽器可視區(qū)域頂部的距離。
(bodyHeight – divHeight)/2
2、瀏覽器可視區(qū)域如果小于元素的高度,即元素距離瀏覽器可視區(qū)域頂部的距離為零。
3、onresize()當瀏覽器的尺寸改變的時候觸發(fā)事件。使用onresize()每次改變的時候,重新計算一下元素到頂部的距離。
實現(xiàn)代碼:
function divMiddle(){ var dairyBox = document.getElementById('dairyBox'); var divHeight = dairyBox.offsetHeight; var bodyHeight = document.body.offsetHeight; if(bodyHeight > divHeight){ var endHeight = parseInt(bodyHeight - divHeight)/2; dairyBox.style.marginTop = endHeight + "px"; }else{ dairyBox.style.marginTop = 0; dairyBox.style.top = 0; } } if(document.all){ window.attachEvent('onload',divMiddle); }else{ window.addEventListener('load',divMiddle,false); } var resizeTimer = null; window.onresize = function(){ resizeTimer = resizeTimer?null:setTimeout(divMiddle,0); }
注意事項:
根據(jù)瀏覽器的不同onresize被觸發(fā)的次數(shù)都不相同,因此處理的時候要格外小心。
以上就是小編為大家?guī)淼淖宧tml元素隨瀏覽器的大小自適應垂直居中的實現(xiàn)方法全部內容了,希望大家多多支持腳本之家~
相關文章
livereload工具實現(xiàn)前端可視化開發(fā)【推薦】
本文將介紹一個工具--livereload。這是一款能根據(jù)你本地文件(html、css、js)的變化,自動跟蹤刷新瀏覽器的實時刷新工具,有了這個工具,會大大減輕你刷新頁面的工作量。下面跟著小編一起來看下吧2016-12-12