函數封裝css
函數封裝是一種函數的功能,它把一個程序員寫的一個或者多個功能經過函數、類的方式封裝起來,對外只提供一個簡單的函數接口。當程序員在寫程序的過程當中須要執行一樣的操做時,程序員(調用者)不須要寫一樣的函數來調用,直接能夠從函數庫裏面調用程序員
元素的屬性數組
Div.attributes 是全部標籤屬性構成的數據集合瀏覽器
Div.classList 是全部class名構成的數組集合函數
在classList的原型鏈上看以看到add()和remove()spa
1. client系列blog
clientWidth/clientHeight 是咱們設置的寬和高加上內邊距(沒有邊框)接口
clientLeft/clientTop 就是咱們設置的邊框值原型鏈
2. Offset系列rem
offsetWidth/offsetHeight 是咱們設置的寬和高加上邊框加上內邊距
offsetLeft/offsetTop 是元素外邊距離父級的內邊距的距離
這個父級由定位position:absolute;
offsetTop 參照物由父級元素身上的position:absolute/fixed決定的;若是父級元素沒有就逐層向上查找直到body。
offsetParent 返回這個元素的父級元素
1. Scroll系列
scrollWidth/scrollHeight 就是咱們設置的寬高加上內邊距(內容沒有溢出的前提下)
若是超出了範圍就按內容而定
scrollTop/scrollLeft 滾動條捲走的高度和寬度
若是咱們設置了小數,都會向上取整
案例分析
Offset 每每和咱們作元素的運動有關
1. offset必須和position配合使用每每這個值還必須是absolute。
2. offsetLeft 有初始值 在標準瀏覽器下是8px 低版本沒有。
3.
Document.body 獲取的是文檔中的body標籤
Document.documentElement 獲取的是文檔中根節點
Document.body.clientWidth
Document.documentElement.clientWidth
兩者獲取的width的值不同差16px,怎樣讓他們同樣。
一個css就搞定了
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