繁体   English   中英

如何完全切断由溢出部分隐藏的高度未知的列表元素:隐藏

[英]How do I fully cut off list elements of unknown height partially hidden by overflow:hidden

我有一些JavaScript从Twitter提要中获取状态更新,还有一个div元素,其高度设置为overflow:hidden 问题在于,隐藏不会完全切断列表元素,而是从字面上切出高度停止的位置。

如何删除整个li元素? 我不知道每个列表元素的高度,因为Twitter状态的大小会有所不同。

这段代码吐出一个具有未定义高度的列表元素的无序列表:
...编辑:

这是大部分代码。 $ param变量是用户输入。

<style type="text/css">
<!--
#twitterbox { border: 1.5px $paramborder $parambordercolor; width: $paramwidth; height: $paramheight; overflow: hidden; display: block; }
#twitter_update_list { padding-left: 30px; list-style-image:url(local/smalltwitter.png);}
#twitter_update_list li { word-wrap: break-word; margin-right: 10px; }
#twitter_update_list li a { display: block; text-align: right;}
#twitter_update_list li span a { display: inline; text-align: left;}
-->
</style>

<div id="twitterbox">
<div class="tabletitle" id="twittertitle" style="width:100%">$paramheader</div>
<div id="twitter_div">
<ul id="twitter_update_list"></ul>
</div>
<script type="text/javascript" src="https://twitter.com/javascripts/blogger.js">
</script>
<script type="text/javascript"
src="https://twitter.com/statuses/user_timeline/$generalUtil.urlEncode("$paramuser").concat(".json?callback=twitterCallback2&amp;count=$paramcount")">
</script>
</div>

<script type="text/javascript">
var list = document.getElementById("twitter_update_list");
var sHeight = list.scrollHeight;
var dHeight = document.getElementById("twitterbox").offsetHeight;
var titleHeight = document.getElementById("twittertitle").offsetHeight;

while (sHeight > dHeight-titleHeight) {
  list.removeChild(list.lastChild);
  sHeight =  list.scrollHeight;
}
</script>

两件事情。 在大多数情况下,它都在工作。 在li元素内,twitter脚本生成一个span元素和一个锚点。 如果它在跨度处截断,它将删除整个列表元素,但是如果在锚点处截断则不会显示整个元素。 但是,现在到了深夜,我必须做点什么,因为Feed本身无法正常工作。 这是最有效的做事方式

由于您已经使用javascript填充了div,因此可以检查其scrollHeight是否大于height 如果是这样,请从底部移除列表项,直到scrollHeight <= height

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM