1. 程式人生 > >元素的屬性及分析

元素的屬性及分析

11.8

1.輪播圖

案例

2.定時器this問題

var t=setInterval(function(){

        console.log(this)

    },1000)

這裡面的this是window

Person.prototype={

        fn:function(){

            console.log(this)

},

        n:200,

        t:setInterval(this.fn,2000)

    }

    var ss=new Person("zhang")

不管定時器裡函式怎麼寫它裡面this都是window。

怎麼處理定時器中的this為指定的物件

Person.prototype={

        fn:function(){

            var that=this;

   t=setIntervar(function(){

      console.log(this.n)

    }

}

 ) ,1000}

在函式前面將關鍵字this賦值給一個變數,函式內使用這個變數代替this就可以了

var  div=document.getElementbyId(“div”)

console.dir(div)

document.attributes是所有標籤屬性構成的資料集合

Div.classList 是所有class名構成的陣列集合

在classList的原型鏈上看以看到add()和remove()

  1. client系列

    clientWidth/clientHeight 是我們設定的寬和高加上內邊距(沒有邊框)

    clientLeft/clientTop 就是我們設定的邊框值

  2. Offset系列

    offsetWidth/offsetHeight 是我們設定的寬和高加上邊框加上內邊距

    offsetLeft/offsetTop 是元素外邊距離父級的內邊距的距離

    這個父級由定位position:absolute;

    offsetTop 參照物由父級元素身上的position:absolute/fixed決定的;如果父級元素沒有就逐層向上查詢直到body。

    offsetParent  返回這個元素的父級元素

  3. Scroll系列

    scrollWidth/scrollHeight 就是我們設定的寬高加上內邊距(內容沒有溢位的前提下)

    如果超出了範圍就按內容而定

    scrollTop/scrollLeft   滾動條捲走的高度和寬度

    如果我們設定了小數,都會向上取整

    案例分析

    Offset 往往和我們做元素的運動有關

    1. offset必須和position配合使用往往這個值還必須是absolute。
    2. offsetLeft 有初始值 在標準瀏覽器下是8px  低版本沒有。

    Document.body 獲取的是文件中的body標籤

    Document.documentElement  獲取的是文件中根節點

    Document.body.clientWidth------------1077

    Document.documentElement.clientWidth---------1093

    二者獲取的width的值不一樣差16px,怎樣讓他們一樣。解決方法:body{margin:0;padding:0;}

    Ie6不支援document.documentElement,

    相容性寫法

    Var w=document.documentElement.clientWidth||document.body.clientWidth

    獲取瀏覽器可見區的寬度

    邏輯運算 ||  &&  !

     

    || 遇到第一個為真就返回

    && 遇到第一個為假就終止,返回false,如果沒遇到就返回最後那一個

    5&&4&&2&&1  ==》1

    5&&0&&3&&0  ==>0

    5||2&&3  且的優先順序高於或  2&&3=》3   5||3 ==》5

    課程

    函式封裝是一種函式的功能,它把一個程式設計師寫的一個或者多個功能通過函式、類的方式封裝起來,對外只提供一個簡單的函式介面。當程式設計師在寫程式的過程中需要執行同樣的操作時,程式設計師(呼叫者)不需要寫同樣的函式來呼叫,直接可以從函式庫裡面呼叫