我有一个定制设计的网格:
当您单击一个网格项目时,该项目的内容 div 会滑动打开,当您再次单击它时它会关闭。这工作正常。
我的问题是我只想像标准手风琴一样一次打开一个内容区域。
因此,例如,我单击“内容一”-它打开“内容一”-现在,如果我单击“内容二”,我希望“内容一”关闭(向上滑动)并打开“内容二”(向下滑动)同时——就像手风琴一样。
显然,我的 html 与标准的手风琴设置有很大不同,所以我很难用我有限的 Jquery 知识来弄清楚如何做到这一点。
请参阅上面的我的 Js Fiddle - 如果您愿意,下面是代码:
谢谢
HTML
<div style="width: 100%; height: 68px;">
<div class="expBtn exBlue ex1"><h3>Content<br>one</h3></div>
<div class="expBtn exOlive ex2"><h3>Content<br>two</h3></div>
<div class="expBtn exOrange ex3"><h3>Content<br>three</h3></div>
</div>
<div class="expArea expArea1">
This is content one
</div>
<div class="expArea expArea2">
This is content two
</div>
<div class="expArea expArea3">
This is content three
</div>
CSS
.expBtn {
width: 190px;
height: 68px;
text-decoration: none;
background-color: #000;
float: left;
cursor: pointer;
}
.expBtn h3 {
font-size: 18px;
font-weight: bold;
color: #e8e7e4;
text-transform: none;
line-height: 1.2em;
letter-spacing: 0em;
padding-top: 13px;
padding-left: 13px;
padding-right: 13px;
padding-bottom: 0;
font-family: arial;
margin: 0;
}
.expArea {
display: none;
width: 570px;
background-color: #ccc;
height: 200px;
}
JS
$(".ex1").click(function () {
$(".expArea1").slideToggle(1000);
});
$(".ex2").click(function () {
$(".expArea2").slideToggle(1000);
});
$(".ex3").click(function () {
$(".expArea3").slideToggle(1000);
});
$(".exBlue").hover(function () {
$(this).css("background-color","#0092d2");
}, function() {
$(this).css("background-color","#000");
});
$(".exOlive").hover(function () {
$(this).css("background-color","#9bad2a");
}, function() {
$(this).css("background-color","#000");
});
$(".exOrange").hover(function () {
$(this).css("background-color","#ff8a0c");
}, function() {
$(this).css("background-color","#000");
});
好的,所以我基本上已经创建了我想要的东西,但是我有大量重复的 JS,我知道任何比我更了解 jquery / javascript 的人都可以简化它们。请查看这个新的 JS 小提琴 - 任何让 JS 崩溃的解决方案都会非常受欢迎!
谢谢
新的 JS 小提琴