我只是鑽研的JavaScript的世界,有關於一個難題,我目前遇到的查詢....的jQuery/JavaScript的顯示/隱藏事件
我有一個菜單按鈕,揭示和隱藏我正在工作的網站上的導航菜單。對於此菜單按鈕,我附加了一些JavaScript以在導航欄顯示時「隱藏」主要網站內容,並在導航欄隨後關閉時「顯示」主要內容再次。
我編碼的JavaScript做的工作,但我知道這是不對的,而且我不知怎麼省了它!我知道這一點,因爲'reveal'和'hide'元素的腳本的計時值相互影響......使得設置動畫的時間有點不可預測,無法準確設置。
菜單按鈕,顯示和隱藏導航菜單具有附接至其以下類:
.menu-toggle
並且當點擊它以顯示導航欄添加一個額外的類,這是:
.toggled-on
所以它的點擊狀態類:
'.menu-toggle toggled-on'
這裏是個ËJS控制網站內容的隱藏和暴露:
$(document).on('click', '#menu-toggle', function() {
$('.site-content').animate({opacity:1, visibility:'visible'}, 100);
});
$(document).on('click', '.toggled-on', function() {
$('.site-content').animate({opacity:0, visibility:'visible'}, 300);
});
我相信這個問題是因爲類的分配而產生的仍然是兩個「正常」和「點擊」菜單按鈕的狀態。
我想我需要做somethng這樣的:
$(document).ready(function(){
if ($('#menu-toggle').hasClass('toggled-on')) {
$('#menu-toggle').addClass('nav-on');
} else {
$('#menu-toggle').addClass('nav-off');
}
});
然而,這是行不通的。
如果任何人都可以指示我如何更好地編碼的方向,那麼將不勝感激。
什麼時候添加'.toggled-on'類?我認爲你應該只在動畫完成後添加這個類。例如:$('。site-content')。animate({opacity:1,visibility:'visible'},100).done(function(){$(「..」)。addClass('toggled-on' )}) – lub0v
感謝回覆/'.toggled-on'類被添加到一些我沒有編程的JS中(它是wordpress二十六個主題標準),所以我寧願保留原樣。 Incidentely我試着去掉'.menu-toggle'這個類,當點擊這個按鈕的時候,這個唯一歸因於按鈕處於點擊狀態的類是'切換'而不是'菜單切換'。但是,噸證明非常成功... – WolfmanLondon
你可以添加您的HTML和CSS部分?所以我可以修改相同的 –