<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    J2EE社區

    茍有恒,何必三更起五更眠;
    最無益,只怕一日曝十日寒.
    posts - 241, comments - 318, trackbacks - 0, articles - 16

    javaScript 獲取窗口左右寬高大小 大全

    Posted on 2011-06-16 11:17 xcp 閱讀(1248) 評論(0)  編輯  收藏 所屬分類: Ajax 、Javascript
    http://www.360doc.com/content/11/0125/12/5480484_88885141.shtml

    1、基礎知識:網頁的大小瀏覽器窗口的大小
        首先,要明確兩個基本概念。
            一張網頁的全部面積,就是它的大小。通常情況下,網頁的大小由內容和CSS樣式表決定。瀏覽器窗口的大小,則是指在瀏覽器窗口中看到的那部分網頁面積,又叫做viewport(視口)。很顯然,如果網頁的內容能夠在瀏覽器窗口中全部顯示(也就是不出現滾動條),那么網頁的大小和瀏覽器窗口的大小是相等的。如果不能全部顯示,則滾動瀏覽器窗口,可以顯示出網頁的各個部分。

    2、clientLeft,clientTop,clientWidth,clientHeight
        
                    (圖一 clientHeight和clientWidth屬性)
            clientWidth=width+padding
            clientHeight=heigt+padding
            function getViewport(){
                    if (document.compatMode == "BackCompat"){
                        return{
                            width:document.body.clientWidth;
                            height:document.body.clientHeight;
                            //整個網頁的大小
                        }
                    else{
                        return{
                            width:document.documentElement(一個div).clientWidth
                            height:document.documentElement.clientHeight;   
                             //一個div的大小
                        }
                    }
            }


    3、screenLeft,screenTop,screenWidth,screenHeight 
        網頁上的每個元素還有scrollHeight和scrollWidth屬性,指包含滾動條在內的該元素的視覺面積.那么,document對象的scrollHeight和scrollWidth屬性就是網頁的大小,意思就是滾動條滾過的所有長度和寬度。
            function getViewport(){
                    if (document.compatMode == "BackCompat"){
                        return{
                            width:document.body.screenWidth;
                            height:document.body.screenHeight ;
                            //整個網頁的大?。òú煌姷臐L動條大小,如沒有滾動條,screenwidth=clientwidth)
                        }
                    else{
                        return{
                            width:document.documentElement(一個div).screenWidth
                            height:document.documentElement.screenHeight ;   
                             //一個div的大小                    
                        }
                    }
            }

        

    4、offsetLeft,offsetTop,offsetWidth,offsetHeight(獲取網頁元素的絕對位置)
        網頁元素的絕對位置,指該元素的左上角相對于整張網頁左上角的坐標。這個絕對位置要通過計算才能得到。
        首先,每個元素都有offsetTop和offsetLeft屬性,表示該元素的左上角與父容器(offsetParent對象)左上角的距離。所以,只需要將這兩個值進行累加,就可以得到該元素的絕對坐標.
        offsetWidth=width+padding+border
        offsetHeight=height+padding+border
        
                                  (圖二 offsetTop和offsetLeft屬性)
         下面兩個函數可以用來獲取絕對位置的橫坐標和縱坐標:
         function getElementLeft(element){
                var actualLeft = element.offsetLeft;
                var current = element.offsetParent
                while (current !== null){
                    actualLeft += current.offsetLeft;
                  current = current.offsetParent;    
             }
             return actualLeft;             
        }
        function getElementTop(element){
              var actualTop = element.offsetTop;
              var current = element.offsetParent;
              while (current !== null){
                   actualTop += current.offsetTop

                   current = current.offsetParent
              } 
              return actualTop;  
        }
        由于在表格和iframe中,offsetParent對象未必等于父容器,所以上面的函數對于表格和iframe中的元素不適用.
             
    5、獲取元素位置的快速方法
         除了上面的函數以外,還有一種快速方法,可以立刻獲得網頁元素的位置.那就是使用getBoundingClientRect()方法。它返回一個對象,其中包含了left、right、top、bottom四個屬性,分別對應了該元素的左上角和右下角相對于瀏覽器窗口(viewport)左上角的距離。
        var X= this.getBoundingClientRect().left;
        var Y =this.getBoundingClientRect().top;
        再加上滾動距離,就可以得到絕對位置
        var X= this.getBoundingClientRect().left+document.documentElement.scrollLeft;
        var Y =this.getBoundingClientRect().top+document.documentElement.scrollTop;
       目前,IE、Firefox 3.0+、Opera 9.5+都支持該方法,而Firefox 2.x、Safari、Chrome、Konqueror不支持



    名稱: ?4C.ESL | .↗Evon
    口號: 遇到新問題?先要尋找一個方案乄而不是創造一個方案こ
    mail: 聯系我


    主站蜘蛛池模板: 免费无码又爽又刺激网站直播 | 无码日韩人妻AV一区免费l| 国产亚洲中文日本不卡二区| 亚洲沟沟美女亚洲沟沟| 久久久久久久亚洲Av无码| 亚洲国产精品久久久久| 蜜芽亚洲av无码精品色午夜| 亚洲国产综合第一精品小说| 久久亚洲精品成人AV| 亚洲熟妇无码久久精品| 久久久久se色偷偷亚洲精品av | 亚洲国产精品国自产拍AV| 亚洲国产成人片在线观看无码| 久久91亚洲精品中文字幕| 内射少妇36P亚洲区| 亚洲娇小性xxxx色| 亚洲av中文无码乱人伦在线观看 | 亚洲AV无码一区二区三区人| 亚洲 日韩 色 图网站| 亚洲丰满熟女一区二区哦| 麻豆一区二区三区蜜桃免费| 亚洲精品国产日韩无码AV永久免费网| 久久er国产精品免费观看8| 中文字幕成人免费高清在线视频| 精品免费tv久久久久久久| 亚洲一区免费在线观看| 毛片免费观看视频| 亚洲国产精品狼友中文久久久| 亚洲色中文字幕无码AV| 亚洲精品午夜在线观看| 亚洲熟女精品中文字幕| 羞羞视频网站免费入口| 最好免费观看高清在线| 国产精品69白浆在线观看免费| 四虎永久免费观看| 亚洲国产成人片在线观看| 亚洲人精品亚洲人成在线| 日韩电影免费在线观看网址| 日韩电影免费观看| 女人让男人免费桶爽30分钟| 亚洲色无码专区在线观看|