[英]Hide older content in a div
HTML代码如下-
<div id="myDiv" style="max-height:500px; overflow-y:auto;margin-top: 15px" >
<div id="myInnerDiv" style="display:none;border:1px solid black;">
<span class='myLine' >data1</span>
<span class='myLine' >data2</span>
<span class='myLine' >data3</span>
<span class='myLine' >data4</span>
<span class='myLine' >data5</span>
</div>
</div>
myInnerDiv
可见性取决于内容,取决于控制器。 现在将动态添加具有myLine
类的行。 如您所见,如果内容超过max-height:500px
,则会提供overflow-y:auto
我们将看到滚动条。 我想要它仅显示最新的5行。 所以如果我们加上
<span class='myLine' >data5</span>
然后
<span class='myLine' >data1</span>
应该删除或隐藏。 有什么建议么?
您可以使用类似这样的东西。 使用此解决方案,您不会因“较旧”的行而丢失内容。
并且您可能应该使用div
而不是span
因为span已display: inline-block
作为标准,因此不会给您换行
//首先将EDIT隐藏起来,然后附加新的
$('.addLine').click(function(){ $('#myInnerDiv').append('<div class="myLine">test</div>'); if($('#myInnerDiv').find('.myLine').length > 5) { $('#myInnerDiv').find('.myLine').not('.hidden').first().addClass('hidden'); } });
.hidden { display: none; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="myDiv" style="max-height:500px; overflow-y:auto;margin-top: 15px" > <div id="myInnerDiv" style="display:block;border:1px solid black;"> <div class='myLine' >data1</div> <div class='myLine' >data2</div> <div class='myLine' >data3</div> <div class='myLine' >data4</div> <div class='myLine' >data5</div> </div> </div> <div class="addLine">add Line </div>
if($('.myLine').length() > 5 ) {
$('.myLine').first().remove();
}
这样的事情。 或者您可以将一个新类添加到.first()并将其隐藏。
if($('.myLine').length() > 5 ) {
$('.myLine').first().replaceWith(yourData);
}
您可以自动将div(myDiv)滚动到底部。
这样最后的值将自动可见。
<script>
$(document).ready(function(){
var objDiv = $('$myDiv');
objDiv.scrollTop = objDiv.scrollHeight;
});
<script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.