最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JS彈出居中的DIV的代碼

 更新時(shí)間:2008年06月15日 19:35:41   作者:  
一直都在想怎么樣使彈出的DIV能在任何時(shí)候都是居中顯示的,剛開始的時(shí)候是用CSS樣式直接定義好層的位置,但是當(dāng)頁面很長的時(shí)候,或是瀏覽器窗口大小不是固定的時(shí)候就不能正確的顯示,所以只好用JS來控制DIV的顯示位置。

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

第一步我們要實(shí)現(xiàn)的是使層在彈出時(shí)絕對居中不去考慮是否有滾動條的情況。 
1.計(jì)算出層距離顯示區(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值 
這樣這個(gè)層就是居中顯示的了。 
第二步我們要實(shí)現(xiàn)的是使在拖動滾動條的情況下彈出的層也能居中。 
其實(shí)很簡單我們只要把拖動的寬度和高度加到前面計(jì)算出來的左邊距和上邊距中就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í)行]
 

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

相關(guān)文章

最新評論

犍为县| 宁强县| 临江市| 惠州市| 长海县| 罗江县| 南木林县| 灵山县| 太白县| 黄平县| 柳河县| 宁明县| 普定县| 五家渠市| 扎赉特旗| 长沙县| 中山市| 松阳县| 民勤县| 蒙自县| 永顺县| 绿春县| 正安县| 武冈市| 五河县| 三都| 班戈县| 左云县| 达州市| 武邑县| 阜城县| 古蔺县| 马龙县| 大新县| 石河子市| 衡山县| 阿巴嘎旗| 页游| 应城市| 灵璧县| 陆河县|