這js代碼 求解釋 感覺腦容量不夠了。。。。。。。麻煩說明一下脈絡(luò)和變量取值 非常感謝?。?!
window.onload=function(){
? ? var aLi=document.getElementsByTagName('li');
? ? for(var i=0; i<aLi.length; i++){
? aLi[i].onmouseover=function(){
? ? ? ? ? ? var oSubNav=this.getElementsByTagName('ul')[0];
? ? ? ? ? ? if(oSubNav){
? ? ? ? ? ? var This=oSubNav;
? ? ? ? ? ? clearInterval(This.time);
? ? ? ? ? ? This.time=setInterval(function(){
? ? ? ? ? ? ? ? ? ? This.style.height=This.offsetHeight+16+"px";
? ? ? ? ? ? ? ? ? ? if(This.offsetHeight>=120)
? ? ? ? ? ? ? ? ? ? clearInterval(This.time);
? ? ? ? ? ? ? ? },30)
? ? ? ? ? ? ?}
? ? ? ? ? }
? ? ? ? //鼠標(biāo)離開菜單,二級菜單動(dòng)畫收縮起來。
aLi[i].onmouseout=function(){
? ? ? ? ? ? var oSubNav=this.getElementsByTagName('ul')[0];
? ? ? ? ? ? if(oSubNav){
? ? ? ? ? ? var This=oSubNav;
? ? ? ? ? ? clearInterval(This.time);
? ? ? ? ? ? This.time=setInterval(function(){
? ? ? ? ? ? ? ? ? ? This.style.height=This.offsetHeight-16+"px";
? ? ? ? ? ? ? ? ? ? if(This.offsetHeight<=0)
? ? ? ? ? ? ? ? ? ? clearInterval(This.time);
? ? ? ? ? ? ? ? },30)
? ? ? ? ? ? ?}
? ? ? ? ? }
}
}
2016-08-06
這個(gè)和水平伸縮的那個(gè)是相似的,只不過水平的改變的是寬度,這個(gè)改變的是高度。我們讓一級菜單水平排列,讓二級菜單垂直排列,并且將二級菜單隱藏,絕對定位到所選菜單之下。之后我們就開始用js制作鼠標(biāo)移入移出時(shí)發(fā)生的動(dòng)畫效果,鼠標(biāo)移入時(shí),我們想讓二級菜單有一定的速度緩慢下拉顯示,并且向下延伸的高度是一定的,延伸動(dòng)作和速度控制都可以用setInterval來實(shí)現(xiàn),延伸可以寫一個(gè)匿名函數(shù),讓他獲取當(dāng)前高度并改變成我們想要的高度,這個(gè)時(shí)候就必須有個(gè)判斷,當(dāng)高度達(dá)到一定的值就要停止延伸了;然后設(shè)定一個(gè)速度就ok了。鼠標(biāo)移出是,思路一致,只是高度值相反而已。
2016-09-04
這段代碼有個(gè)問題 :如果二級菜單內(nèi)容更多,導(dǎo)致不是一致的高度(120px),那多余的菜單項(xiàng)就會被隱藏。不建議這樣寫
2016-09-02
這道題寫錯(cuò)了
var aLi=document.getElementsByTagName('li');
這是選擇了所有的li元素,包括二級菜單里的li也被選上了。
2016-08-17
通過觸發(fā)li,來遍歷所有的ul二級菜單,并且通過函數(shù),來改變二級菜單的高度,我建議寫代碼之前。一定要先看一下,給出的所有代碼,思路要清晰,我第一遍,也是不知道怎么著手,所以,先弄清楚思路。