我想改善以下代码的用户体验:
HTML:
<div class="news-item">
<div class="main-content">
<div class="header"> Header 1 </div>
<div class="content"> lorum ipsum </div>
<div class="time"> time </div>
</div>
</div>
<div class="news-item">
<div class="main-content">
<div class="header"> Header </div>
<div class="content"> lorum ipsum </div>
<div class="time"> time </div>
</div>
</div>
JavaScript:
jQuery(document).ready(function() {
$(".header").click(function () {
$(this).parent().toggleClass("expand");
});
});
CSS:
body {
background-color: whitesmoke;
}
.header{
font-size: 20px;
padding-bottom: 20px;
cursor:pointer;
}
.main-content {
margin: 0 0 12px 70px;
padding: 0;
background: rgb(251, 251, 251);
width: 80%;
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
-moz-box-shadow: 0 1px 2px rgba(0,0,0,0.35);
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
position:relative;
margin-left: 20px;
margin-top: 20px;
background-color: white;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
padding: 22px;
height: 20px;
overflow: hidden;
}
.expand {
height: 200px;
}
演示:http: //jsfiddle.net/9UJ7f/4/
您可能会注意到,当您单击页眉时,框会展开或折叠。
但是,这仅在我们单击标题时有效,例如,当我们单击框的边框(在折叠模式下)时,没有任何反应。
为了消除“无效点击”,我希望它是这样的:
A. 在折叠模式下:如果单击框上的任意位置(.main-content 类),该项目将展开
B. 在扩展模式下:如果您只单击 .Header 类,项目将再次收缩。
这样做的最佳方法是什么?
更新:
好吧,你是对的。CSS 有点偏离。我选择了 Sandeep 的解决方案,因为它是最简约但效果最好的解决方案。但也要感谢所有提供帮助的人。特别是 codeparadox & Arif 的 JS 解决方案。(尽管边界周围仍然有一些“无效点击”)。你们太棒了,伙计们。我会给大家竖起大拇指的。