4

さて、私の問題です。3 つの div タグがあり、すべて幅が 100 ピクセルだとします。

<--- DIV WIDTH --->
Text in div 1
Text in div two, it overflows
Text in div three
<--- DIV WIDTH --->

現在、私はdiv用にこのcssを持っています:

width:100px;
overflow:hidden;

私がやりたいのは、テキストがオーバーフローした場合、マーキーのようにスクロールして、少し待てばすべてのテキストが表示されるようにすることです。しかし、テキストがオーバーフローした場合にのみマーキーを表示したい.

どうすればいいですか?

Thx、トニー

4

4 に答える 4

8

条件部分を解く

JS

var el = $('your element');
if (el.get(0).scrollWidth > el.width()) {
    // Your marquee code here
}
于 2009-05-07T16:54:27.923 に答える
3
$(function(){
  $box = $('div.box');
  $box.children().each(function(){
    if ($box.width() < $(this).width()) {
      $(this).wrap('<marquee>');
    }
  )};
});

jQuery で動作します (まだ確認していません。問題があれば返信してください)。必要に応じて、css でスクロール属性を設定できます。

于 2009-05-07T16:51:20.490 に答える
1

条件部分は、rennat が提案したように簡単に解決できます。

jQueryを使用することは可能ですか?そうである場合は、 jQuery マーキー プラグインと互換性のある HTML を作成し、$(element).marquee(); を呼び出すだけです。アニメーション用。<marquee>適切な css 属性を持つ div のみを使用するため (非標準タグの使用を避けるため) 、' ' タグよりも優れています。

于 2009-10-13T08:43:21.633 に答える
0

これは、説明されている問題 (div 内のプレーン テキスト) では機能しませんが、それが最小限のケースである場合は、overflow: autoオーバーフローした場合に水平スクロールバーを追加する を使用できます。

(marquee は非標準の HTML タグであることにも注意してください。)

于 2009-05-07T16:53:27.037 に答える