2009-12-22 2 views
0

Я пытаюсь найти простой способ иметь div только с текстом в нем, автоматически прокручивая текст по вертикали. Я не хочу использовать фреймворк (хотя я использую Prototype, поэтому, если проще использовать Prototype, тогда это нормально, но не Scriptalicious).Автоматически вертикально прокручивать содержимое содержимого цикла

Я предполагаю, что есть способ сделать это с помощью нескольких строк кода, но я недостаточно знаком с Javascript, чтобы узнать, как наиболее эффективно это сделать.

+0

Отредактируйте для моего ответа ... – ekhaled

ответ

6

Это не может быть обычным, но вы можете попробовать <marquee> тег

он работает как в IE и FF, и в последний раз, когда я проверял, сафари тоже.

<marquee behavior="scroll" direction="up" height="250" 
    scrollamount="2" scrolldelay="10""> 
    Your content goes here 
</marquee> 

должен дать вам то, что вы хотите,
и вы можете их стиль как любой <div> ...
, а затем есть дополнительное преимущество, не имеющие JavaScript ...

Редактировать в ответ на ваш комментарий

Он становится лучше, попробуйте это в любом браузере

onmouseover="this.stop()" onmouseout="this.start()" 

И это в IE

style="filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0, 
FinishOpacity=100, 
Style=1, StartX=0, FinishX=0, StartY=0, FinishY=10) 
progid:DXImageTransform.Microsoft.Alpha(Opacity=100, FinishOpacity=0, 
Style=1, StartX=0, FinishX=0, StartY=90, FinishY=100)" 

Как атрибуты тега шатрового ...

+0

Интересно, я не знал, что тег marquee может иметь такую ​​настройку. –

0
function scrollDivUp(id){ 
    document.getElementById(id).scrollTop-=1 
    timerUp=setTimeout("scrollDivUp('"+id+"')",10) 
} 

попробуйте что-то вроде этого, возможно.

вы также можете изменить .scrollTop- = 1 на .scrollTop + = 1 для прокрутки в другую сторону.

Вам также понадобится прокручиваемый div, который может быть выполнен путем ограничения размера и установки свойства стиля переполнения ie. style = "width: 200px; height: 300px; overflow: auto"

+0

Это будет работать, но это все еще не решает проблему цикла. Я пытаюсь создать непрерывный цикл прокрутки. –

+0

В некоторой петле я могу проверить, достиг ли полоса прокрутки до дна, а затем просто вернуться к вершине, но это выглядит довольно липким, должен быть лучший способ сделать плавный цикл. –

+0

Что делать, если содержимое div имело большую область пробелов сверху и снизу, как только текст прокручивается вниз, вы можете снова перейти в верхнюю часть, и пробелы должны выглядеть так, как будто текст прокручивается сверху вверх? – Tim

0

Я вижу, что правильный ответ еще не дан. Я думаю, вам нужно посмотреть на cloneNode(), например. И клонируйте элемент, который вы хотите прокрутить. Когда первый элемент находится в последней точке прокрутки, поместите дублированный элемент после первого элемента. И когда этот дублированный элемент почти в конце, поместите оригинал после дубликата и так далее!

Смежные вопросы