作用:交互
修改樣式
事件 :用戶操作,
html引入js其他方式
js可以寫在html行內中烹看,不用通過script標簽,比如標簽綁定一個事件奢米,onclick="divi.style.display='none' ;ivi.style.display='none' ;ivi.style.display='none' ;" 原來可以這樣寫抓韩,但在實際中不會這樣做,這就引出函數的概念
函數
參數
形參:占位符鬓长,場景:不確定時時候谒拴,
當函數業(yè)務邏輯相似時,把多個函數寫成一個涉波,代碼重用性;
注意
html中怎么寫英上,js中就怎么寫
1.用style加樣式 作用在行間
- 用style取樣式, 也是取行間啤覆,如果行間沒有就取不到
styleg與className 如果用過style修改樣式了再通過添加類名的方式,如果style有className修改過的屬性窗声,哪么通過className修改的方式沒有效,原理style修改的樣式加在行間(優(yōu)先級)
提取行間事件
ECMAScript :解釋器
DOM document
BOM windom
為什么數據類型轉換
類型不是我們要的類型
parseInt()參數 字符串返回NaN
NaN 不等于NaN
isNaN() 是 不是數字 trun
閉包:子函數可以使用父函數的局部變量
//真:true ,非零數字笨觅, 非空字符串 非空對象
//假:false ,數字零耕腾, 空字符串 空對象 , undefined
Json
訪問
求值
沒有l(wèi)ength
怎么循環(huán)
for(var i in json)
arguments 數組
currentStyle
數組操作
添加
- push(元素)杀糯, 從尾部添加
- unshift(元素)扫俺, 從頭部添加
刪除 - pop(), 從尾部彈出
- shift(),從頭部彈出
splice 萬能操作 數組添加刪除 - splice(開始固翰,長度狼纬,元素倦挂。畸颅。。)
- 先刪除方援,后插入
刪除 - splice(開始,長度)
插入 - splice(開始涛癌,0,元素拳话。。弃衍。。)
替換
數組連接合并
arr.concat(arrb) 數組連接合并
數組元素連接成字符串
arr.join("-")
排序
arr.sort();
arr.sort(function(n1,n2){
//return n1-n2
if(n1<n2){
return -1
}
else if (n1>n2){
return -1;
}
else{
return 0 ;
}
})
定時器的作用
開啟定時器
var time =setInterval (funtion,100) 間隔型
setTimeout (funtion,100) 延時型
停止定時器
clearInterval(time)
clearTimeout()
獲取系統(tǒng)時間
Date對象
getHours , getMinutes, getSeconds
getFullYear(), getMonth(),getDate(), getDay()
字符串
str.charAt(0);獲取字符串指定下標對應的字符
延時提示框
如果兩個元素綁定的事件一樣岸裙,可以用 連object1.onclick=object2 .onclik=function(){};
無縫滾動
運動本質速缆,改變position
offsetLeft 元素左邊距
offsetTop 上邊距
DOM基礎
標簽 html
元素 js
節(jié)點 DOM
獲取子節(jié)點
childNodes nodeType
children
會把空格當成文本節(jié)點降允,而nodeType可以判斷文本節(jié)點還是元素節(jié)點
var oUl = document.getElementById("ul1");
for(var i=0;i<oUl.childNodes.length;i++){
if(oUl.childNodes[i].nodeType==1){
oUl.childNodes[i].style.background = 'red';
}
}
獲取父節(jié)點
e.parentNode
offsetParent 定位的父節(jié)點
操縱元素屬性
oDiv.style.display = "block";
oDiv.style['display'] = "block"
獲纫彰印:getAttribut(名稱)
設置:setAttribut(名稱,值)
刪除:removeAttribut(名稱)
DOM元素靈活查找
className
DOM操作應用
創(chuàng)建元素
var oLi=document.createElement(標簽名);
父級.appendChild(oLl);
插入元素
父級.insertBefore(節(jié)點,原有節(jié)點)
if(aLi.length>0){
oUl.insertBefore(oLi,aLi[0])
}else{
oUl.appendChild(oLi);
}
刪除元素
父級.removeChild(節(jié)點) 刪除一個節(jié)點
文檔碎片
相當一個包 先把所有創(chuàng)建的元素裝到文檔碎片中翅楼,然后一次性裝到父級中,減少瀏覽器渲染
var oUl = document.getElementById('ul1');
var oFrag = document.createDocumentFragment();//文檔碎片
for(var i=0;i<10000;i++){
var oLi = document.createElement('li');
oFrag = appendchild(oLi);
}
oUl.appendChild(oFrag)
DOM高級應用
表格應用
oTab.tBodies[0].rows[1].cells[1].innerHTML
運動框架
像素 px 為什么沒有小數毅臊, 電腦分辨率最小單位是1px,所以不能小于1晤碘,如果有小數褂微,就會取整
所以運動中的left 不能取整的話,就不能到達目標位置
js事件高級應用
事件綁定
ev.attachEvent(事件名式撼,函數)
addEventListener(事件名,函數著隆,false);
function myAddEvent(obj,ev,fn){
if(obj.attachEvent){
obj.attachEvent('on'+ev,fn);
}
else
{
obj.addEventListener(ev,fn,false);
}
}
解除綁定
dedtachEvent(事件名稱呀癣,函數)
removeEventListener(事件名稱,函數)
function myRemoveEvent(obj,ev,fn){
if(obj.dedtachEvent){
obj.dedtachEvent('on'+ev,fn);
}
else
{
obj.removeEventListener(ev,fn,false);
}
}