jQuery click/toggle 显示/隐藏 div 面板
jQuery click/toggle reveal / hide div panels
我正在尝试使用 jQuery 单击显示和隐藏一些 div。我几乎已经开始工作了,只是我需要一点帮助。
这是我目前得到的结果:jsfiddle
$(document).ready(function() {
$('#showmenu1').click(function() {
$('.menu1').fadeToggle("fast");
$('.menu2').hide();
$('.menu3').hide();
$('#showmenu2').hide();
$('#showmenu3').hide();
$(this).toggleClass('close');
});
$('#showmenu2').click(function() {
$('.menu2').fadeToggle("fast");
$('.menu1').hide();
$('.menu3').hide();
$('#showmenu1').hide();
$('#showmenu3').hide();
$(this).toggleClass('close');
});
$('#showmenu3').click(function() {
$('.menu3').fadeToggle("fast");
$('.menu1').hide();
$('.menu2').hide();
$('#showmenu1').hide();
$('#showmenu2').hide();
$(this).toggleClass('close');
});
});
效果很好,但是如果您单击 'Link 1'、'Link 2' 和 'Link 3' link 中的任何一个,它会显示正确的显示 div并隐藏其他 2 links(这是正确的)。然后我需要它做的是,如果您随后单击显示隐藏的相同 Link 面板,但我还需要其他 2 个 link 面板重新出现。在他们隐藏的那一刻。
谢谢
也许切换而不是隐藏其他的:
$(document).ready(function() {
$('#showmenu1').click(function() {
$('.menu1').fadeToggle("fast");
$('.menu2').hide();
$('.menu3').hide();
$('#showmenu2').toggle();
$('#showmenu3').toggle();
$(this).toggleClass('close');
});
$('#showmenu2').click(function() {
$('.menu2').fadeToggle("fast");
$('.menu1').hide();
$('.menu3').hide();
$('#showmenu1').toggle();
$('#showmenu3').toggle();
$(this).toggleClass('close');
});
$('#showmenu3').click(function() {
$('.menu3').fadeToggle("fast");
$('.menu1').hide();
$('.menu2').hide();
$('#showmenu1').toggle();
$('#showmenu2').toggle();
$(this).toggleClass('close');
});
});
我是这样做的:
$(document).ready(function() {
$('#showmenu1').click(function() {
$('.menu1').fadeToggle("fast");
$('#showmenu2').toggle();
$('#showmenu3').toggle();
$(this).toggleClass('close');
});
$('#showmenu2').click(function() {
$('.menu2').fadeToggle("fast");
$('#showmenu1').toggle();
$('#showmenu3').toggle();
$(this).toggleClass('close');
});
$('#showmenu3').click(function() {
$('.menu3').fadeToggle("fast");
$('#showmenu1').toggle();
$('#showmenu2').toggle();
$(this).toggleClass('close');
});
});
使用toggle()
而不是hide()
,当其他菜单不涉及时,您不必处理它们:)
请检查更新后的 Fiddle:http://jsfiddle.net/rzw9fzz2/2/
$(document).ready(function() {
$('#showmenu1').click(function() {
$('.menu1').fadeToggle("fast");
$('.menu2').hide();
$('.menu3').hide();
$('#showmenu2').toggle();
$('#showmenu3').toggle();
$(this).toggleClass('close');
});
$('#showmenu2').click(function() {
$('.menu2').fadeToggle("fast");
$('.menu1').hide();
$('.menu3').hide();
$('#showmenu1').toggle();
$('#showmenu3').toggle();
$(this).toggleClass('close');
});
$('#showmenu3').click(function() {
$('.menu3').fadeToggle("fast");
$('.menu1').hide();
$('.menu2').hide();
$('#showmenu1').toggle();
$('#showmenu2').toggle();
$(this).toggleClass('close');
});
});
我稍微修改了你的代码。您可能会发现它很有用:
HTML:
<div id="showmenu1" class="panel">Link 1</div>
<div id="showmenu2" class="panel">Link 2</div>
<div id="showmenu3" class="panel">Link 3</div>
<div class="menu1">Link 1 reveal content</div>
<div class="menu2">Link 2 reveal content</div>
<div class="menu3">Link 3 reveal content</div>
CSS:
.panel{width:150px;float:left;padding:50px;cursor:pointer;}
#showmenu1{background:#ffff00;}
#showmenu2{background:#ff0000;}
#showmenu3{background:#fAAA00;}
.menu1, .menu2, .menu3{float:left;background:#000;color:#fff;padding:50px; opacity: 0; display: none}
.hide-showmenu {
display: none;
}
.display-menu {
display: block;
}
.transition-menu {
transition: opacity 0.5s linear;
opacity: 1;
}
JS:
$(document).ready(function() {
$('#showmenu1').click(function() {
$('.menu1').toggleClass("display-menu");
setTimeout(function() {
$('.menu1').toggleClass("transition-menu");
});
$("#showmenu2, #showmenu3, .menu2, .menu3").toggleClass("hide-showmenu");
$(this).toggleClass('close');
});
$('#showmenu2').click(function() {
$('.menu2').toggleClass("display-menu");
setTimeout(function() {
$('.menu2').toggleClass("transition-menu");
});
$("#showmenu1, #showmenu3, .menu1, .menu3").toggleClass("hide-showmenu");
$(this).toggleClass('close');
});
$('#showmenu3').click(function() {
$('.menu3').toggleClass("display-menu");
setTimeout(function() {
$('.menu3').toggleClass("transition-menu");
});
$("#showmenu1, #showmenu2, .menu1, .menu2").toggleClass("hide-showmenu");
$(this).toggleClass('close');
});
});
Fiddle 这里:http://jsfiddle.net/rzw9fzz2/3/
我正在尝试使用 jQuery 单击显示和隐藏一些 div。我几乎已经开始工作了,只是我需要一点帮助。
这是我目前得到的结果:jsfiddle
$(document).ready(function() {
$('#showmenu1').click(function() {
$('.menu1').fadeToggle("fast");
$('.menu2').hide();
$('.menu3').hide();
$('#showmenu2').hide();
$('#showmenu3').hide();
$(this).toggleClass('close');
});
$('#showmenu2').click(function() {
$('.menu2').fadeToggle("fast");
$('.menu1').hide();
$('.menu3').hide();
$('#showmenu1').hide();
$('#showmenu3').hide();
$(this).toggleClass('close');
});
$('#showmenu3').click(function() {
$('.menu3').fadeToggle("fast");
$('.menu1').hide();
$('.menu2').hide();
$('#showmenu1').hide();
$('#showmenu2').hide();
$(this).toggleClass('close');
});
});
效果很好,但是如果您单击 'Link 1'、'Link 2' 和 'Link 3' link 中的任何一个,它会显示正确的显示 div并隐藏其他 2 links(这是正确的)。然后我需要它做的是,如果您随后单击显示隐藏的相同 Link 面板,但我还需要其他 2 个 link 面板重新出现。在他们隐藏的那一刻。
谢谢
也许切换而不是隐藏其他的:
$(document).ready(function() {
$('#showmenu1').click(function() {
$('.menu1').fadeToggle("fast");
$('.menu2').hide();
$('.menu3').hide();
$('#showmenu2').toggle();
$('#showmenu3').toggle();
$(this).toggleClass('close');
});
$('#showmenu2').click(function() {
$('.menu2').fadeToggle("fast");
$('.menu1').hide();
$('.menu3').hide();
$('#showmenu1').toggle();
$('#showmenu3').toggle();
$(this).toggleClass('close');
});
$('#showmenu3').click(function() {
$('.menu3').fadeToggle("fast");
$('.menu1').hide();
$('.menu2').hide();
$('#showmenu1').toggle();
$('#showmenu2').toggle();
$(this).toggleClass('close');
});
});
我是这样做的:
$(document).ready(function() {
$('#showmenu1').click(function() {
$('.menu1').fadeToggle("fast");
$('#showmenu2').toggle();
$('#showmenu3').toggle();
$(this).toggleClass('close');
});
$('#showmenu2').click(function() {
$('.menu2').fadeToggle("fast");
$('#showmenu1').toggle();
$('#showmenu3').toggle();
$(this).toggleClass('close');
});
$('#showmenu3').click(function() {
$('.menu3').fadeToggle("fast");
$('#showmenu1').toggle();
$('#showmenu2').toggle();
$(this).toggleClass('close');
});
});
使用toggle()
而不是hide()
,当其他菜单不涉及时,您不必处理它们:)
请检查更新后的 Fiddle:http://jsfiddle.net/rzw9fzz2/2/
$(document).ready(function() {
$('#showmenu1').click(function() {
$('.menu1').fadeToggle("fast");
$('.menu2').hide();
$('.menu3').hide();
$('#showmenu2').toggle();
$('#showmenu3').toggle();
$(this).toggleClass('close');
});
$('#showmenu2').click(function() {
$('.menu2').fadeToggle("fast");
$('.menu1').hide();
$('.menu3').hide();
$('#showmenu1').toggle();
$('#showmenu3').toggle();
$(this).toggleClass('close');
});
$('#showmenu3').click(function() {
$('.menu3').fadeToggle("fast");
$('.menu1').hide();
$('.menu2').hide();
$('#showmenu1').toggle();
$('#showmenu2').toggle();
$(this).toggleClass('close');
});
});
我稍微修改了你的代码。您可能会发现它很有用:
HTML:
<div id="showmenu1" class="panel">Link 1</div>
<div id="showmenu2" class="panel">Link 2</div>
<div id="showmenu3" class="panel">Link 3</div>
<div class="menu1">Link 1 reveal content</div>
<div class="menu2">Link 2 reveal content</div>
<div class="menu3">Link 3 reveal content</div>
CSS:
.panel{width:150px;float:left;padding:50px;cursor:pointer;}
#showmenu1{background:#ffff00;}
#showmenu2{background:#ff0000;}
#showmenu3{background:#fAAA00;}
.menu1, .menu2, .menu3{float:left;background:#000;color:#fff;padding:50px; opacity: 0; display: none}
.hide-showmenu {
display: none;
}
.display-menu {
display: block;
}
.transition-menu {
transition: opacity 0.5s linear;
opacity: 1;
}
JS:
$(document).ready(function() {
$('#showmenu1').click(function() {
$('.menu1').toggleClass("display-menu");
setTimeout(function() {
$('.menu1').toggleClass("transition-menu");
});
$("#showmenu2, #showmenu3, .menu2, .menu3").toggleClass("hide-showmenu");
$(this).toggleClass('close');
});
$('#showmenu2').click(function() {
$('.menu2').toggleClass("display-menu");
setTimeout(function() {
$('.menu2').toggleClass("transition-menu");
});
$("#showmenu1, #showmenu3, .menu1, .menu3").toggleClass("hide-showmenu");
$(this).toggleClass('close');
});
$('#showmenu3').click(function() {
$('.menu3').toggleClass("display-menu");
setTimeout(function() {
$('.menu3').toggleClass("transition-menu");
});
$("#showmenu1, #showmenu2, .menu1, .menu2").toggleClass("hide-showmenu");
$(this).toggleClass('close');
});
});
Fiddle 这里:http://jsfiddle.net/rzw9fzz2/3/