0

Twitterフィードからステータス更新を取得するjavascriptがいくつかあり、div高さが設定された要素がありoverflow:hiddenます。問題は、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>

2つのこと。ほとんどの場合、それは機能していました。li 要素内で、twitter スクリプトは span 要素とアンカーを生成します。スパンで切り取られた場合、リスト要素全体が削除されますが、アンカーで切り取られた場合は削除されず、それが表示されます。しかし、今は夜遅く、何かをしたに違いありません。フィード自体が機能していないからです。これは物事を行う最も効率的な方法ですか

4

1 に答える 1

0

すでに div に JavaScript を設定しているscrollHeightため、. より大きいかどうかを確認できますheight。ある場合は、下から までリスト項目を削除しますscrollHeight <= height

于 2012-06-14T15:55:00.667 に答える