溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

html中如何實(shí)現(xiàn)默認(rèn)隱藏左側(cè)菜單

發(fā)布時(shí)間:2021-02-26 10:47:42 來源:億速云 閱讀:658 作者:清風(fēng) 欄目:web開發(fā)

這篇“html中如何實(shí)現(xiàn)默認(rèn)隱藏左側(cè)菜單”文章,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要參考一下,對(duì)于“html中如何實(shí)現(xiàn)默認(rèn)隱藏左側(cè)菜單”,小編整理了以下知識(shí)點(diǎn),請(qǐng)大家跟著小編的步伐一步一步的慢慢理解,接下來就讓我們進(jìn)入主題吧。

html中實(shí)現(xiàn)默認(rèn)隱藏左側(cè)菜單的示例

這個(gè)問題看似很簡(jiǎn)單,只需要找到對(duì)應(yīng)的js和css,設(shè)置左側(cè)菜單不顯示或者默認(rèn)點(diǎn)擊一次即可。沿著上面的思路,我改出了第一版:

    $(document).ready(function() {        
    $("#menu a.menu").click(function(){            
    $("#menu li.menu").removeClass("active");            
    $(this).parent().addClass("active");            
    if($("#openClose").hasClass("close")){                
    $("#openClose").click();            
    }        
    });        
    if($("#openClose").hasClass("close")){            
    $("#openClose").click();        
    }    
    });

經(jīng)測(cè)試,修改未通過。在登陸成功,跳轉(zhuǎn)到這個(gè)頁(yè)面時(shí)會(huì)明顯看出左側(cè)菜單的漸默。

從上次修改中可以看出,左側(cè)菜單是默認(rèn)顯示的。由于js實(shí)現(xiàn)的效果不符合需求,只能改css了。

$("#right").width($("#content").width()-$("#openClose").width()-5);

做到這里感覺還是蠻輕松的,測(cè)試也沒有明顯的問題。事情總有反復(fù),bug也是出人意料,在Firfox下整個(gè)頁(yè)面只有頂部菜單欄可以正常顯示。問題在這兒變得有點(diǎn)麻煩了,瀏覽器兼容性很難解決。

CSS display 屬性只定義了值為'none'時(shí),對(duì)應(yīng)元素不在頁(yè)面顯示,并沒有規(guī)范瀏覽器的實(shí)現(xiàn)。

網(wǎng)上的搜索結(jié)果也沒有相關(guān)問題的解決方案,只能自己想辦法了。

既然只在Firfox下有問題,則判斷瀏覽器廠商,做特殊處理,代碼如下:

if($.browser.mozilla){    };

利用FirBug的查看器可知,右側(cè)頁(yè)面iframe的src為空,且左側(cè)菜單雖未顯示,但內(nèi)容已加載完成。知道問題癥結(jié)所在,就好解決了。找出默認(rèn)菜單,取得菜單鏈接,為右側(cè)頁(yè)面iframe的src賦值。

$(document).ready(function() {    
if($.browser.mozilla){        
$("#mainFrame").attr("src",$("#menuFrame").contents().find("li.active :first-child").attr("href"));    
};     
$("#menu a.menu").click(function(){        
$("#menu li.menu").removeClass("active");        
$(this).parent().addClass("active");        
if($("#openClose").hasClass("close")){            
$("#openClose").click();        
}        
if($.browser.mozilla){        
$("#mainFrame").attr("src",$("#menuFrame").contents().find("li.active :first-child").attr("href"));    
};     
});
});

但問題還是沒有解決,切換菜單滯后。在點(diǎn)擊切換菜單后頁(yè)面沒有反應(yīng),在第二次點(diǎn)擊切換菜單時(shí)才會(huì)跳轉(zhuǎn)得到第一次要跳轉(zhuǎn)的菜單,或者說是切換菜單需要單擊兩次。

這種情況應(yīng)該是獲取默認(rèn)菜單url的時(shí)機(jī)不對(duì),應(yīng)該在左側(cè)菜單切換完成后獲取。在菜單綁定的單擊方法中,左側(cè)菜單的內(nèi)容并沒有完成刷新。

查資料可知,iframe有一個(gè)加載完成事件,正好可以用在這里。最終代碼如下:

$(document).ready(function() {  
$("#menu a.menu").click(function(){        
$("#menu li.menu").removeClass("active");        
$(this).parent().addClass("active");        
if($("#openClose").hasClass("close")){            
$("#openClose").click();        
}    
});        
if($.browser.mozilla){        
$("#menuFrame").on("load",function(){            
$("#mainFrame").attr("src",$("#menuFrame").contents().find("li.active :first-child").attr("href"));        
});    
}; 
});

以上是“html中如何實(shí)現(xiàn)默認(rèn)隱藏左側(cè)菜單”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI