我一直在搜索,仍然沒有解決這個問題。我有一個垂直菜單,默認情況下是展開的。當我點擊下圖中的toogle按鈕時,它將verical-mini類添加到body標籤,並將其保存在代表摺疊狀態的localstorage內。加載localstorage保存的類之前
現在我遇到的問題是,在窮人的互聯網連接屏幕上,或頁面加載/刷新上的鉻和邊緣瀏覽器,它首先顯示默認擴展類,並且只有在文檔被加載後,如果迷你類存在於本地存儲,它將vertical-mini類添加到body標籤。
那麼是否有可能在本地存儲之前從localstorage加載保存的類,或者至少更快,因此我們不能首先看到默認的擴展狀態?
我也試着將jquery放在標題內,但仍然有相同的延遲。
有人建議我一個jQuery預加載器,但這不是一種替代方案,因爲我的一些頁面有很多內容,需要一段時間才能加載文檔。
jQuery代碼:
$(document).ready(function() {
$('.vertical-menu-toogle').click(function (event) {
event.preventDefault();
$('body').toggleClass('vertical-mini');
if($('body').hasClass('vertical-mini')){
localStorage.setItem('savedmini', 'vertical-mini');
}
else{
localStorage.removeItem('savedmini');
}
});
var savedmini = localStorage.getItem('savedmini');
if(savedmini !== ''){
$('body').addClass(savedmini);
}
else {
$('body').removeClass(savedmini);
}
});
CSS:
.vertical-menu {
height: 100%;
width: 250px;
}
.vertical-mini .vertical-menu {
width: 80px;
}
對於這個不是jQuery使用純java腳本,因爲如果您無法編輯html並將該類直接放在那裏,jquery需要時間加載並使用頭標記 –
中的純java腳本代碼。使用普通的javascript –
偉大的建議,但我不知道我發佈的jQuery代碼如何看起來像純js。任何幫助都感激不盡。 – Jacksonfive