我只是钻研的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部分?所以我可以修改相同的 –