在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ 小米導(dǎo)航列表欄問題

小米導(dǎo)航列表欄問題

小米導(dǎo)航列表欄,應(yīng)該怎么用JS寫出來,和小米官網(wǎng)那樣的效果出來
hoverli如果下面有子元素,那么就讓他的高度變大,如果是第二次hoverli且有和第一次hover時(shí)li只能變內(nèi)容,高度不能變
如果li內(nèi)沒有其他的內(nèi)容,那么就讓前面hover出來的li收起來
謝謝大家

回答
編輯回答
清夢(mèng)

昨晚在發(fā)布這個(gè)問題后,關(guān)了電腦后,突發(fā)奇想的手寫一段JS代碼,然后到今天下班了再小修小改了下,發(fā)現(xiàn)可以了
具體思路是通過在css里就把每一個(gè)li里的子元素高度設(shè)為目標(biāo)高度,然后就用JS來操作,不寫每個(gè)li的移出事件,只寫移入事件`
下面是我的JS代碼
var oNav = document.getElementById("nav"),

oUl = oNav.getElementsByTagName("ul")[0],
aLi = oUl.children;

var onoff = true,num = 0;
for (var i = 0; i < aLi.length; i++) {

aLi[i].index = i;
aLi[i].onmouseenter = function(){
    if( aLi[this.index].getAttribute("class")==="fl conversion" ){
        if( onoff ){
            this.children[1].style.height = "0";
            this.children[1].style.display = "block";
            animate(aLi[this.index].children[1],"height",232,500);
            num = this.index;
            onoff = false;
        }else{
            aLi[num].children[1].style.display = "none";
            num  = this.index;
            aLi[num].children[1].style.display = "block";
        }
    }else{
        animate(aLi[num].children[1],"height",0,500);
        onoff = true;
    }
};
oUl.onmouseleave = function () {
    animate(aLi[num].children[1],"height",0,500);
    onoff = true;
}

}
如果您發(fā)現(xiàn)有問題,歡迎指出并指正,謝謝

2017年8月20日 07:31