JS彈出居中的DIV的代碼
首先再次詳細(xì)解釋一下JS中窗口和網(wǎng)頁的幾種尺寸屬性的含義
document.body.clientWidth(網(wǎng)頁可見區(qū)域?qū)挘菏侵笧g覽器顯示網(wǎng)頁的區(qū)域?qū)挾龋话g覽器的邊框?qū)挾群痛怪睗L動條的寬度。大小隨著瀏覽器的窗口大小而改變。
document.body.clientHeight(網(wǎng)頁可見區(qū)域高):是指瀏覽器顯示網(wǎng)頁的區(qū)域所能看到的高度,不包括瀏覽器的邊框?qū)挾群退綕L動條的高度。大小隨著瀏覽器的窗口大小而改變。
document.body.scrollTop(網(wǎng)頁被卷去的高):是指拉動垂直滾動條時網(wǎng)頁上面被地址欄及菜單欄遮蓋著的部分的高。
document.body.scrollLeft(網(wǎng)頁被卷去的左):是指拉動水平滾動條時網(wǎng)頁左面被左邊線遮蓋著的部分的寬。
現(xiàn)在我們來分析一下程序該如何實現(xiàn):
第一步我們要實現(xiàn)的是使層在彈出時絕對居中不去考慮是否有滾動條的情況。
1.計算出層距離顯示區(qū)域左邊和上邊的位置
注意:divId指的是所要居中的層,divId.clientWidth為其寬度?。?nbsp;
var divId = document.getElementById("xxx");
var v_left=(document.body.clientWidth-divId.clientWidth)/2;
var v_top=(document.body.clientHeight-divId.clientHeight)/2;
2.把得到的值重新賦給DIV的left和top屬性
divId.style.left=v_left;
divId.style.top=v_top;
說明:divId為DIV標(biāo)簽的id值
這樣這個層就是居中顯示的了。
第二步我們要實現(xiàn)的是使在拖動滾動條的情況下彈出的層也能居中。
其實很簡單我們只要把拖動的寬度和高度加到前面計算出來的左邊距和上邊距中就OK 了。
v_left+=document.body.scrollLeft;
v_top+=document.body.scrollTop;
2.把得到的值重新賦給DIV的left和top屬性
divId.style.left=v_left;
divId.style.top=v_top;
這樣顯示出來就是居中的了。
完整代碼如下:
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
如果你想在拖動滾動條或是窗口重置大小時,層也能居中顯示的話,可以在body的屬性里面加上onresize="divcenter();"和 onscroll="divcenter();"就OK了,不過可能顯示的效果不是很好,特別是在拖動滾動條時的效果可能是一擅一擅的,忒不爽。
相關(guān)文章
JavaScript中關(guān)于字符串替換與截取的知識點匯總
在日常開發(fā)中,經(jīng)常遇到針對字符串的替換、截取,知識點比較碎容易混淆,所以本文為大家整理了一下相關(guān)的知識點,希望對大家有所幫助2023-05-057. Microsoft Online-Crash Control, version 6.0(微軟在線崩潰控件)
7. Microsoft Online-Crash Control, version 6.0(微軟在線崩潰控件)...2007-08-08