国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > JavaScript > 正文

JS彈出居中的DIV的代碼

2019-11-21 01:43:08
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

首先再次詳細(xì)解釋一下JS中窗口和網(wǎng)頁(yè)的幾種尺寸屬性的含義 
document.body.clientWidth(網(wǎng)頁(yè)可見區(qū)域?qū)挘菏侵笧g覽器顯示網(wǎng)頁(yè)的區(qū)域?qū)挾龋话g覽器的邊框?qū)挾群痛怪睗L動(dòng)條的寬度。大小隨著瀏覽器的窗口大小而改變。 
document.body.clientHeight(網(wǎng)頁(yè)可見區(qū)域高):是指瀏覽器顯示網(wǎng)頁(yè)的區(qū)域所能看到的高度,不包括瀏覽器的邊框?qū)挾群退綕L動(dòng)條的高度。大小隨著瀏覽器的窗口大小而改變。 
document.body.scrollTop(網(wǎng)頁(yè)被卷去的高):是指拉動(dòng)垂直滾動(dòng)條時(shí)網(wǎng)頁(yè)上面被地址欄及菜單欄遮蓋著的部分的高。 
document.body.scrollLeft(網(wǎng)頁(yè)被卷去的左):是指拉動(dòng)水平滾動(dòng)條時(shí)網(wǎng)頁(yè)左面被左邊線遮蓋著的部分的寬。 
現(xiàn)在我們來(lái)分析一下程序該如何實(shí)現(xiàn): 

第一步我們要實(shí)現(xiàn)的是使層在彈出時(shí)絕對(duì)居中不去考慮是否有滾動(dòng)條的情況。 
1.計(jì)算出層距離顯示區(qū)域左邊和上邊的位置 
注意:divId指的是所要居中的層,divId.clientWidth為其寬度!@ 
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; 
說(shuō)明:divId為DIV標(biāo)簽的id值 
這樣這個(gè)層就是居中顯示的了。 
第二步我們要實(shí)現(xiàn)的是使在拖動(dòng)滾動(dòng)條的情況下彈出的層也能居中。 
其實(shí)很簡(jiǎn)單我們只要把拖動(dòng)的寬度和高度加到前面計(jì)算出來(lái)的左邊距和上邊距中就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; 
這樣顯示出來(lái)就是居中的了。 
完整代碼如下:  


[Ctrl+A 全選 注:如需引入外部Js需刷新才能執(zhí)行]
 

如果你想在拖動(dòng)滾動(dòng)條或是窗口重置大小時(shí),層也能居中顯示的話,可以在body的屬性里面加上onresize="divcenter();"和 onscroll="divcenter();"就OK了,不過可能顯示的效果不是很好,特別是在拖動(dòng)滾動(dòng)條時(shí)的效果可能是一擅一擅的,忒不爽。 

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 拜城县| 阿图什市| 改则县| 张家港市| 滨州市| 墨玉县| 柘荣县| 班玛县| 定远县| 湖北省| 和平县| 霍邱县| 灵台县| 绥滨县| 富平县| 东至县| 商丘市| 清原| 邯郸市| 灵宝市| 龙海市| 上蔡县| 抚远县| 晋中市| 温泉县| 万年县| 鹿泉市| 镇雄县| 沂南县| 丹凤县| 九龙城区| 永寿县| 海伦市| 津市市| 宣化县| 松阳县| 黔西| 化州市| 鄂托克前旗| 合川市| 白城市|