JavaScript獲取頁面高度寬度 彈出層效果

新人第一次發(fā)帖,可喜歡可評論可轉(zhuǎn)載

先來說一說獲取頁面高度寬度的問題

var sheight = document.documenElement.scrollHeight;   //獲取頁面的高度

var swidth = document.documentElelment.scrollWidth;    //獲取頁面的寬度

var cheight = document.documentElement.clientHeight;  //獲取頁面可視區(qū)域的高度

var cwidth= document.documentElement.clientWidth;  //獲取頁面可視區(qū)域的高度

頁面高度指的是整個網(wǎng)頁高度,就是在頂部到底部的長度

頁面可是區(qū)域的高度指的是我們能看到的長度,如果你不改變?yōu)g覽器的窗口大小和分辨率的大小,這個值一般是不會改變的。

頁面的寬度就沒什么好說的了,因為通常情況下 swidth = cwidth 。很少有網(wǎng)頁能夠左右拉動的。

然后在來說一說彈出層,這個看起來高大上實際上非常簡單非常基礎(chǔ)的東西,我學(xué)習(xí)的時候真的是淚流滿面,曾經(jīng)覺得這怎么這么難,看了原理之后這的是欲哭無淚。好吧,我是小白。

先來看看如果要做出彈出層需要知道的東西:

CSS:

position:fixed;
z-index:---;
opacity:0.5;//遮罩層層透明度
filter:alpha(opacity=50);//兼容IE
position:absolute;//絕對定位

Js:

var div = document.create('div');//創(chuàng)建節(jié)點
document.body.appendChild(div);//插入節(jié)點

說一說彈出層的原理,點擊一個按鈕時觸發(fā)一個事件,這個事件新建了兩個DOM節(jié)點,一個是遮罩層,一個是彈出框。通過設(shè)置遮罩層的透明度來實現(xiàn)背景變黑,將遮罩層的 z-index設(shè)置為100(比頁面中其他元素的z-index)大就可以,彈出框的z-index設(shè)置為101(比遮罩層大)。通過點擊遮罩層或者關(guān)閉按鈕刪除剛剛創(chuàng)建的節(jié)點。

最后,按照習(xí)俗該上代碼了...

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>彈出層</title>
</head>
<style>
#close{ //關(guān)閉按鈕
    background:url(http://img.mukewang.com/532c272100018d1600300030.jpg) no-repeat; 
    width:30px; 
    height:30px; 
    cursor:pointer; 
    position:absolute; 
    right:5px; 
    top:15px; 
    text-indent:-999em;
}
#login{ //彈出框
    position:fixed;
    z-index:1001;
}
.loginCon{ 
    position:relative; 
    width:670px;
    height:380px;
    background:url(http://img.mukewang.com/532c26ee0001ded006700380.jpg) #2A2C2E center center no-repeat;
}
#Misk{//彈出層
    position: absolute;
    top:0px;
    left:0px;
    background-color: #000;
    z-index: 1000;
    opacity:0.5;
    filter:alpha(opacity=50);//兼容IE
}
</style>
<body>
    <input id='Btn' type="button" value='打開彈出層' />
    <script>
        var btn = document.getElementById('Btn');
        btn.onclick=function () {
            //獲取頁面的高度和寬度
            var sHeight = document.documentElement.scrollHeight;
            var sWidth = document.documentElement.scrollWidth;
            
            //獲取頁面的可視區(qū)域高度和寬度
            var wHeight=document.documentElement.clientHeight;
            var wWidth=document.documentElement.clientWidth;
            var oLogin=document.createElement("div");
            oLogin.id="login";
            oLogin.innerHTML="<div class='loginCon'><div id='close'>點擊關(guān)閉</div></div>";
            //插入創(chuàng)建的登陸框
            document.body.appendChild(oLogin);
            //獲取登陸框的寬和高
            var dHeight = 400;   // 獲取登陸框的高度
            var dWidth = 800;      // 獲取登陸框的寬度
            //設(shè)置登陸框的left和top
            oLogin.style.left=wWidth/2-dWidth/2+"px";
            oLogin.style.top=wHeight/2-dHeight/2+'px';  //設(shè)置登陸框top值

            var oMisk = document.createElement('div');
            oMisk.id='Misk';
            oMisk.style.height=wHeight+'px';
            oMisk.style.width=wWidth+'px';
            document.body.appendChild(oMisk);

            var oClose=document.getElementById("close");
            //點擊登陸框以外的區(qū)域也可以關(guān)閉登陸框
            oMisk.onclick=oClose.onclick=function()
            {
                document.body.removeChild(oLogin);
                document.body.removeChild(oMisk);
            }
        }
    </script>
</body>
</html>

課程來自慕課網(wǎng),后續(xù)會有更多類似特效,基本每天一個。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補...
    _Yfling閱讀 14,093評論 1 92
  • type - 基本層類型 類型:Number,默認(rèn):0layer提供了5種層類型??蓚魅氲闹涤校?(信息框,默認(rèn))...
    hopevow閱讀 16,917評論 5 2
  • 官網(wǎng)中文版 1 簡易天空替換## 技能:線性擦除,追蹤運動,用顏色鍵K出人物,用色彩曲線調(diào)色。(1)天空圖片素材放...
    朱細(xì)細(xì)閱讀 11,617評論 4 82
  • CSS 定位 CSS有三種基本的定位機制:普通流,浮動,絕對定位(absolute, fixed):普通流是默認(rèn)定...
    _空空閱讀 5,960評論 0 15
  • 原題:用js實現(xiàn),彈窗彈出時需要有半透明的蒙層,位置需要根據(jù)彈窗的大小實現(xiàn)左右、垂直居中,對話框需要有標(biāo)題欄(標(biāo)題...
    離銘閱讀 784評論 0 0

友情鏈接更多精彩內(nèi)容