
知識點:
1. 寫定時器setInterval函數(shù)第一條要清除定時器,否則會多次觸發(fā)定時器
2. 寫動畫前要清楚瀏覽器默認樣式*{margin:0;padding:0}? 否則px會跳躍
3. 注意避免硬編碼即在函數(shù)的判斷之中直接使用具體的值如10,20等,應該把這些變化的值作為參數(shù)傳入函數(shù)內(nèi)部,即美觀也方便后來的修改。
4. 代碼相同的部分需要封裝,可以利用兩個不同的參數(shù)進行區(qū)分
5. offset() 方法返回或設置匹配元素相對于文檔的偏移(位置)。該方法返回的對象包含兩個整型屬性:top 和 left,以像素計。此方法只對可見元素有效。
scrollWidth:對象的實際內(nèi)容的寬度,不包邊線寬度,會隨對象中內(nèi)容超過可視區(qū)后而變大。?
clientWidth:對象內(nèi)容的可視區(qū)的寬度,不包滾動條等邊線,會隨對象顯示大小的變化而改變。
clientWidth = width + padding
offsetWidth:對象整體的實際寬度,包滾動條等邊線,會隨對象顯示大小的變化而改變。
offsetWidth = width + padding + border=clientWidth+border
offsetleft:此屬性可以返回當前元素距離某個父輩元素左邊緣的距離,當然這個父輩元素也是有講究的。
(1).如果父輩元素中有定位的元素,那么就返回距離當前元素最近的定位元素邊緣的距離。
(2).如果父輩元素中沒有定位元素,那么就返回相對于body左邊緣距離。
語法結(jié)構(gòu):
obj.offsetleft
特別說明:此屬性是只讀的,不能夠賦值。
offsetLeft和style.left的區(qū)別:
1.offsetWidth屬性可以返回對象的padding+border+width屬性值之和,style.width返回值就是定義的width屬性值。
2.offsetWidth屬性僅是可讀屬性,而style.width是可讀寫的。
3.offsetWidth屬性返回值是整數(shù),而style.width的返回值是字符串(包括“px”)。
4.style.width僅能返回以style方式定義的內(nèi)部樣式表的width屬性值。
6. 計時器setInterval()
在執(zhí)行時,從載入頁面后每隔指定的時間執(zhí)行代碼。
語法:
setInterval(代碼,交互時間);
參數(shù)說明:
1. 代碼:要調(diào)用的函數(shù)或要執(zhí)行的代碼串。
2. 交互時間:周期性執(zhí)行或調(diào)用表達式之間的時間間隔,以毫秒計(1s=1000ms)。
返回值:
一個可以傳遞給 clearInterval() 從而取消對"代碼"的周期性執(zhí)行的值。
self.setInterval的意思是只在當前頁面執(zhí)行的意思
clearInterval() 方法可取消由 setInterval() 設置的交互時間。
語法:
clearInterval(id_of_setInterval)
參數(shù)說明:
id_of_setInterval:由 setInterval() 返回的 ID 值。
setTimeout()計時器,在載入后延遲指定時間后,去執(zhí)行一次表達式,僅執(zhí)行一次。
語法:
setTimeout(代碼,延遲時間);
提示:setTimeout() 只執(zhí)行 code 一次。如果要多次調(diào)用,請使用 setInterval() 或者讓 code 自身再次調(diào)用 setTimeout()。
7. 若要移動塊級元素,使之一部分或完全溢出父級元素,可使用相對定位
8. onmouseover寫法(必須函數(shù)):object.onmouseover=function(){SomeJavaScriptCode};
9. 將獲取元素放在window.onload外,會導致找不到對象
第一,把js文件放在底部加載;第二,使用window.onload=function(){}包裹js內(nèi)容。
10. 不透明度
img{
opacity:0.4;
filter:alpha(opacity=40); /* 針對 IE8 以及更早的版本 */}
IE9, Firefox, Chrome, Opera 和 Safari 使用屬性?opacity?來設定不透明度。opacity 屬性能夠設置的值從 0.0 到 1.0。值越小,越透明。
IE8 以及更早的版本使用濾鏡?filter:alpha(opacity=x)。x 能夠取的值從 0 到 100。值越小,越透明。
11. javascript的計算能力不強,用小數(shù)的方式來做數(shù)學運算容易得出錯誤結(jié)果,建議需要運算的代碼盡量避開小數(shù)。
12. Math.ceil()向上取整
13. 多物體動畫不能用公用計時器、公用元素,需定義在每個obj中,obj.timer ,obj.alpha,aLi[i].timer=null
,clearInterval(aLi[i].timer
14. 獲取樣式
js只能獲取到行內(nèi)樣式,而無法獲取到內(nèi)部樣式或外部樣式。
obj.style.xxxx獲取的是行內(nèi)樣式。
獲取內(nèi)部或外部樣式的方法:currentStyle 針對IE瀏覽器;getComputedStyle 針對firefox瀏覽器。
a. 封裝好的函數(shù)
b. 用法
