Текст выделенного текста при переполнении текста - PullRequest
4 голосов
/ 07 мая 2009

ну вот моя проблема. Допустим, у меня есть 3 тега div, все имеют ширину 100 пикселей:

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

Теперь у меня есть эта CSS для div:

width:100px;
overflow:hidden;

Что я хочу сделать, так это если текст переполняется, он прокручивается как выделение, поэтому весь текст можно увидеть, если немного подождать. Но я хочу, чтобы выделение показывалось только при переполнении текста.

Как бы я это сделал?

Спасибо, Тони

Ответы [ 4 ]

8 голосов
/ 07 мая 2009

решение условной части

JS

var el = $('your element');
if (el.get(0).scrollWidth > el.width()) {
    // Your marquee code here
}
3 голосов
/ 07 мая 2009
$(function(){
  $box = $('div.box');
  $box.children().each(function(){
    if ($box.width() < $(this).width()) {
      $(this).wrap('<marquee>');
    }
  )};
});

Будет работать в jQuery (я еще не проверял. Если у вас есть какие-либо проблемы с ответом). При желании вы можете установить атрибут прокрутки в css.

1 голос
/ 13 октября 2009

Условная часть может быть легко решена, как предложено Rennat.

Можно ли использовать jQuery? Если это так, создайте свой html-совместимый с плагином jQuery marquee и просто вызовите $ (element) .marquee (); для анимации. Это лучше, чем тег '<marquee>', поскольку он использует только div с надлежащими атрибутами css (избегая использования нестандартных тегов).

0 голосов
/ 07 мая 2009

Это не будет работать для вашей проблемы, как описано (простой текст в div), но если это только минимальный случай, вы можете использовать overflow: auto, который добавит горизонтальную полосу прокрутки, если она переполнится.

(Обратите внимание, что marquee - это нестандартный HTML-тег.)

...