让我们先看一下 HTML 代码。你要:
<div id="arrow">▲ (view less)</div>
<div id="main">
<div id="content1">text from #content1</div>
<div id="content2">text from #content2</div>
<div id="content3">text from #content3</div>
<div id="content4">text from #content4</div>
</div>
<div id="toggle_view">view more</div>
然后对于 CSS,你想要:
#main {overflow-y:hidden;height:100px;position:relative}
#arrow {cursor: pointer;}
#toggle_view{ cursor: pointer;}
.inactive { color: gray; }
如果没有,真的很难说你可以点击一些东西cursor:pointer
。此外,我们希望在按钮处于非活动状态时向用户指示(例如,如果您已经在查看每个
好吧,让我们来看看 JavaScript。您提到您正在使用一个库,但不是哪个库,所以我将假设 jQuery。首先,我们需要设置我们的变量:
var heightOfMain = $('#main').height();
var heightOfContent1 = $('#content1').height();
var differenceInHeight = heightOfMain - heightOfContent1;
然后,当单击 时#arrow
,我们想要将 的高度更改#main
为移除#content2
、#content3
和#content4
,只留下#content1
后面(基本上,我们想要“移除”等于 的高度differenceInHeight
)。我们还想取消激活#arrow
,因为如果您已经少看,说“少看”是没有意义的。最后,我们要确保“查看更多”处于活动状态(因为我们稍后会切换它)。
$('#arrow').click(function() {
$('#main').animate({
height: heightOfContent1
});
$(this).addClass('inactive');
$('#toggle_view').removeClass('inactive');
});
最后,我们要启用#toggle_view
. 单击它时,我们想重新添加我们起飞的高度(differenceInHeight
)。然后,由于我们已经查看了所有内容,我们可以禁用“查看更多”。最后,我们需要再次激活“少看”。
$('#toggle_view').click(function() {
//you want to remove contents 2 through 4, which have a combined height
//of differenceInHeight
$('#main').animate({
height: differenceInHeight });
$(this).hide();
$('#arrow').show();
});
有关所有内容,请参阅此 jsFiddle。