我創建了一個小腳本來處理針對較低分辨率設備的響應式設計,並顯示切換菜單而不是全寬菜單。 以下腳本對我來說工作正常,但對我來說這看起來有點混亂。我需要什麼樣的簡化或做法才能使此代碼更加簡約和高效?我可以使用哪些jQuery/Javascript簡寫或做法來使此代碼更簡約?
resetMenu()函數正在處理以保留特定分辨率的css,同時瀏覽器從正常模式調整爲切換模式,這是否是一種好的做法?
$(document).ready(function($) {
function resetMenu() {
$('#top-menu li, #search-form, .social').css({"display":"block"});
$('#top-menu li').css({"display":"inline-block"});
};
$(window).resize(function() {
if($(window).width() > 640){
$(resetMenu());
}
else{
$('#top-menu li, #search-form, .social').css({"display":"none"}).fadeOut(1000);
$('#top-menu li:nth-child(2)').css({"display":"none"});
}
});
$(".togglebutton").toggle(
function() {
if($(window).height() < 360){
$('#top-menu li').css({"display":"inline-block"}).fadeIn(500);
$('#top-menu li:nth-child(2)').css({"display":"none"});
$('#search-form, .social').css({"display":"block"}).fadeIn(500);
$('#top-menu li').css({"border":"none"});
}
else{
$('#top-menu li, #search-form, .social').css({"display":"block"}).fadeIn(1000);
$('#top-menu li:nth-child(2)').css({"display":"none"});
}
},
function() {
$('#top-menu li, #search-form, .social').css({"display":"none"}).fadeOut(1000);
$('#top-menu li:nth-child(2)').css({"display":"none"});
}
)});
我推薦的一件事是緩存你的選擇器。連續調用'$('#top-menu li')'會導致性能壓力。此外,調用'$('#top-menu')。find('li')'會更快。 – Syon
直接調用'resetMenu()',不要將它封裝在'$()'中。在'resetMenu()'的第一行中選擇'#top-menu li',因爲函數的第二行改變了這些元素的CSS屬性。 – nnnnnn
適當的縮進應該在極簡之前。 –