Javascript 如何在单击时在div之间淡入淡出,从display none开始?

Javascript 如何在单击时在div之间淡入淡出,从display none开始?,javascript,html,css,Javascript,Html,Css,在寻找解决方案时,我在网上遇到了这个JSFIDLE。它几乎满足了我的需要,除了我需要从隐藏div开始。我试过玩它,但作为JS的新手,我运气不太好 我想我应该把这作为一个起点,看看是否有人能就我需要走的路线提供建议 任何帮助都将不胜感激 $(文档).ready(函数(){ $('.pbox:gt(0)').hide(); $('#菜单')。在('click','a',function(){ $('.current')。不是($(this.closest('li')。addClass('curre

在寻找解决方案时,我在网上遇到了这个JSFIDLE。它几乎满足了我的需要,除了我需要从隐藏div开始。我试过玩它,但作为JS的新手,我运气不太好

我想我应该把这作为一个起点,看看是否有人能就我需要走的路线提供建议

任何帮助都将不胜感激

$(文档).ready(函数(){
$('.pbox:gt(0)').hide();
$('#菜单')。在('click','a',function(){
$('.current')。不是($(this.closest('li')。addClass('current'))。removeClass('current');
var$this=$(this);
//淡出所有打开的分包
$('.pbox:visible').fadeOut('slow',function(){
$('.pbox[id='+$this.data('id')+']')).fadeIn('slow');
});
});
});
ul#菜单{
保证金:0;
填充:0;
列表样式类型:无;
文本对齐:居中;
}
ul#菜单li{
位置:相对位置;
浮动:左;
边框底部:4px实心#EFEF;
右边距:10px;
右边填充:0px;
垫底:5px;
显示:内联块;
}
ul#菜单。当前{
边框底部:4px实心#3d496a;
}
菜单li:悬停{
边框底部:4px实心#3d496a;
}
菜单a{
填充:2px2px;
文字装饰:无;
字体:粗体8px乔治亚州威尔达纳,“泰晤士报新罗马”,泰晤士报,衬线;
颜色:#68759c;
}
菜单李a:悬停{
颜色:#8895b8;
边界:无;
}
#div1{display:none;}



第一组 第二组 第三组
第四个Div
只需添加
显示:无指向要隐藏的元素

然后从第一个
li
中删除
class=“active”
,使其不被选中

并稍微修改js。查看您的函数仅显示一个div,如果它以前隐藏了。如果你从“所有隐藏”开始,它不会隐藏任何东西,因此它不会显示任何东西

$(文档).ready(函数(){
$('.pbox:gt(0)').hide();
$(“#菜单”)。在('click','a',function()上{
$('.current')。不是($(this.closest('li')。addClass('current'))。removeClass('current');
var$this=$(this);
//淡出所有打开的分包
var visibleElements=$('.pbox:visible');

如果(visibleElements.length,只需在css中将
display:none;
添加到要隐藏的元素中即可

然后从第一个
li
中删除
class=“active”
,使其不被选中

稍微修改一下js。你的函数只会显示一个div,如果它之前隐藏了。如果你从all hidden开始,它不会隐藏任何东西,因此它不会显示任何东西

$(文档).ready(函数(){
$('.pbox:gt(0)').hide();
$(“#菜单”)。在('click','a',function()上{
$('.current')。不是($(this.closest('li')。addClass('current'))。removeClass('current');
var$this=$(this);
//淡出所有打开的分包
var visibleElements=$('.pbox:visible');
如果(visibleElements.lengthDelete
class=“current”
,那么在开始时没有一个处于活动状态

然后将第一个div设置为
display:none;

Delete
class=“current”
,这样一开始就没有激活的div

然后将第一个div设置为
display:none;

我只是删除了类“current”。但是第一个div仍然出现,所以我创建了另一个div,为空,它可以工作:)

$(文档).ready(函数(){
$('.pbox:gt(0)').hide();
$('#菜单')。在('click','a',function(){
$('.current')。不是($(this.closest('li')。addClass('current'))。removeClass('current');
var$this=$(this);
//淡出所有打开的分包
$('.pbox:visible').fadeOut('slow',function(){
$('.pbox[id='+$this.data('id')+']')).fadeIn('slow');
});
});
});
ul#菜单{
保证金:0;
填充:0;
列表样式类型:无;
文本对齐:居中;
}
ul#菜单li{
位置:相对位置;
浮动:左;
边框底部:4px实心#EFEF;
右边距:10px;
右边填充:0px;
垫底:5px;
显示:内联块;
}
ul#菜单。当前{
边框底部:4px实心#3d496a;
}
菜单li:悬停{
边框底部:4px实心#3d496a;
}
菜单a{
填充:2px2px;
文字装饰:无;
字体:粗体8px乔治亚州威尔达纳,“泰晤士报新罗马”,泰晤士报,衬线;
颜色:#68759c;
}
菜单李a:悬停{
颜色:#8895b8;
边界:无;
}



第一组 第二组 第三组 第四个Div
我刚刚删除了类“current”。但是第一个Div仍然出现,所以我创建了另一个Div,为空,它可以工作:)

$(文档).ready(函数(){
$('.pbox:gt(0)').hide();
$('#菜单')。在('click','a',function(){
$('.current')。不是($(this.closest('li')。addClass('current'))。removeClass('current');
var$this=$(this);
//淡出所有打开的分包
$('.pbox:visible').fadeOut('slow',function(){
$('.pbox[id='+$this.data('id')+']')).fadeIn('slow');
});
});
});
ul#菜单{
保证金:0;
填充:0;
列表样式类型:无;
文本对齐:居中;
}
ul#菜单li{
位置:相对位置;
浮动:左;
边框底部:4px实心#EFEF;
右边距:10px;
右边填充:0px;
垫底:5px;
显示:内联块;
}
ul#菜单。当前{
边框底部:4px实心#3d496a;
}
菜单li:悬停{
边框底部:4px实心#3d496a;
}
菜单a{
填充:2px2px;
文字装饰:无;
字体:粗体8px乔治亚州威尔达纳,“泰晤士报新罗马”,泰晤士报,衬线;
颜色:#68759c;
}
菜单李a:悬停{
颜色:#8895b8;
边界:无;
}



第一组 秒