2012-03-13 15 views
2

私のサイトには、当社の最新のツイートが表示されているTwitterウィジェットがあります。ただし、ツイートが一定の長さを超えていると、サイトのコンテナに収まりきらず、途切れることがあります。私はプログラム的にツイートの文字数に応じて要素の行の高さのCSSを変更したいと思います。jQuery CSSの行の高さを文字数に応じて変更してください

要素のこの部分は、ここで示されている定義CSS:

ul.tweet_list li{overflow-y: hidden;overflow-x: hidden;padding: 0.5em !important;height: 55px;line-height:55px;vertical-align: middle} 

、ページ上の要素のみが、このコードによって生成されます

<div class="tweeter_widget"></div> 

私はどうかを検出する必要がありますツイートの文字数が「X」個を超えている場合は、行の高さを55pxから24pxに変更します。

例:http://justpaste.it/twitter-widget テキストが長すぎると、その上の「白いコンテナ」がどこにあるのかが分かりません。私は次の行に折り返し、私の "赤い"コンテナに留まるように、テキストのこの "棒"の行の高さを変更したい。

これはPHPで行われますが、おそらくjQueryを使用する必要があることはわかっています。

編集:ここでつぶやきを生成JSがある:

/* Twitter initiates. Enter your username here. */ 
jQuery(function($){ 
     $(".tweeter_widget").tweet({ 
     join_text: "auto", 
     username: "username", 
     avatar_size: null, 
     count: 1, 
     auto_join_text_default: "", 
     auto_join_text_ed: "", 
     auto_join_text_ing: "", 
     auto_join_text_reply: "", 
     auto_join_text_url: "", 
     loading_text: "loading tweets..." 
     }); 
    }); 
+0

jQueryはJavaScriptです。 – Pointy

+0

*実際に問題があるのですか?「テキストを縦にセンタリングする方法」を解決しようとしていますか? – thirtydot

+0

質問を更新しました...スクリーンショットのリンクを確認してください – adamdehaven

答えて

8

see this fiddle

var cnt = $(".tweeter_widget").text().length; 
if (cnt > 10) { 
    $(".tweeter_widget").css("line-height", "5px"); 
} 

すなわち:ツイートを含むDIV以上10文字場合は、行の高さを変更します。

+0

これはうまくいかないようです... ...? – adamdehaven

+0

ここでこのサンプルを見てください:http://jsfiddle.net/robasta/uKc66/4/ – robasta

+0

これはうまくいきますが、なんらかの理由でページから完全に消えてしまいます。同様に、それはスペースや何かの正しい量を移動しません。このコードはどこに置く必要がありますか? – adamdehaven

0

いくつかの作業はまだ行われないが、おそらくありますが、つぶやきのDIVセッターに含めるためのコードを編集:

/* Twitter initiates. Enter your username here. */ 
jQuery(function($){ 
     $(".tweeter_widget").tweet({ 
     join_text: "auto", 
     username: "username", 
     avatar_size: null, 
     count: 1, 
     auto_join_text_default: "", 
     auto_join_text_ed: "", 
     auto_join_text_ing: "", 
     auto_join_text_reply: "", 
     auto_join_text_url: "", 
     loading_text: "loading tweets..." 
     }); 
     if ($(".tweeter_widget").html().length > X) 
     { 
     $(".tweeter_widget").css('line-height', '24px'); 
     } 
}); 

チャンスはこれが動的に更新するので、あなたはコールバックのいくつかの並べ替えでこれを延期したいと思うです。私が正しくツイートAPIを理解していれば、あなたはこれを行うには、フィルタパラメータを使用することができます。

/* Twitter initiates. Enter your username here. */ 
jQuery(function($){ 
     $(".tweeter_widget").tweet({ 
     join_text: "auto", 
     username: "username", 
     avatar_size: null, 
     count: 1, 
     auto_join_text_default: "", 
     auto_join_text_ed: "", 
     auto_join_text_ing: "", 
     auto_join_text_reply: "", 
     auto_join_text_url: "", 
     loading_text: "loading tweets...", 
     filter: function(t) { 
        if (t.tweet_raw_text.length > X) 
        { 
         $(".tweeter_widget").css('lineheight', '24px'); 
        } 
        return t; 
       } 

     }); 
}); 

を私はもちろん、このコードをテストしていません。

+0

私はJSの新しいものです...これはどこに置くのですか?私はそれがonLoadを実行するために何をする必要がありますか? – adamdehaven

+0

ツイートを生成するJSを表示するために、コードを一番上に編集しました。そこにコードを置くことができますか? – adamdehaven

+0

さて、最後の行の直前に置くことができると思います。私は返事を編集して表示します。 – MarkFisher

関連する問題