Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Бегущая строка с меняющимся текстом (https://javascript.ru/forum/misc/3232-begushhaya-stroka-s-menyayushhimsya-tekstom.html)

yvarvara 31.03.2009 10:31

Бегущая строка с меняющимся текстом
 
AzriMan, я ужасно извиняюсь, но у меня нет никакого визуального редактора ни в Firefox, ни в IE. Может, мне надо зарегистрироваться, чтобы его видеть?

У меня такая задача: чтобы текст в бегущей строке каждый раз менялся (брался из массива). Вообще возможно ли это с тегом marquee? Если нет, как еще это можно сделать? Вот код файла, который я для этого составила. Заранее спасибо!

<html>
<head></head><body>
<marquee id="ut" scrolldelay="100" width="500" bgcolor="#ff9900" height="20"></marquee>
<script language="JavaScript">
var set = ["На март 2009 от родителей поступило 130 просьб на проведение домашних консультаций.","К настоящему времени проведено 50 консультаций на дому.","Всего с начала года мы провели 310 консультаций на дому."];
var utObject = document.getElementById("ut");
var m=0;
function change (m) {utObject.innerHTML = set[m];
m=1-m;};
setInterval (change(m), 5000);
</script>
</body>
</html>

Kolyaj 31.03.2009 10:34

Цитата:

Сообщение от yvarvara
я ужасно извиняюсь, но у меня нет никакого визуального редактора ни в Firefox, ни в IE

Действительно, у незарегистрированных какая-то ущербная форма ответа.

yvarvara 31.03.2009 11:25

Я зарегистрировалась и разметила свой код:

<html>
<head></head><body>
<marquee id="ut" scrolldelay="100" width="500" bgcolor="#ff9900" height="20"></marquee>
<script language="JavaScript">

var set = ["На март 2009 от родителей поступило 130 просьб на проведение домашних консультаций.","К настоящему времени проведено 50 консультаций на дому.","Всего с начала года мы провели 310 консультаций на дому."];
var utObject = document.getElementById("ut");
var m=0;
function change (m) {utObject.innerHTML = set[m];
m=1-m;};
setInterval (change(m), 5000);

</script>
</body>
</html>[
HTML][/html]

AzriMan 31.03.2009 14:27

попробуйте так:
var set = ["На март 2009 от родителей поступило 130 просьб на проведение домашних консультаций.","К настоящему времени проведено 50 консультаций на дому.","Всего с начала года мы провели 310 консультаций на дому."];
var utObject = document.getElementById("ut");
var m=0;

//
function change () 
{
	utObject.innerHTML = set[m];
	m=1+m;
}
setInterval (change, 5000);
//


мне не понятно единственное - для чего вы делаете m=1-m;?

yvarvara 31.03.2009 16:45

Ответ
 
Чтобы менять m с 0 на 1 и обратно. Чтобы проверить, что что-то меняется.

AzriMan 31.03.2009 16:53

Аа.. значит изменение с 0 на 1 и обратно и было задумано. ок. просто в "массиве" три элемента, поэтому мне стало не понятно. ок. что насчет того варианта, который я написал?

yvarvara 31.03.2009 17:36

А кажется Вы еще ничего не написали... Или Вы имеете в виду другой мой вопрос, про innertext? Там все получилось. Просто теперь я пытаюсь с помощью innerHTML менять текст в бегущей строке, а мой файл не работает.

yvarvara 31.03.2009 17:38

А, я поняла! Я не заметила этот Ваш ответ! Извините

yvarvara 31.03.2009 20:06

Спасибо! Ваш файл работает. Но, к сожалению, есть некоторые проблемы. В Firefox все более-менее нормально, но в IE текст появляется кусками, не целыми фразами, и время, которое он находится на странице, почему-то разное, неодинаковое. Работает со странностями.
Все равно, большое Вам спасибо, что потратили на меня свое время!
Я подумаю о каком-нибудь другом варианте бегущей строки

AzriMan 01.04.2009 09:21

пожалуйста.

p.s. не знаю, возможно дело в этом, попробуйте такой вариант (изменилсяс вызов по таймеру):

var set = ["На март 2009 от родителей поступило 130 просьб на проведение домашних консультаций.","К настоящему времени проведено 50 консультаций на дому.","Всего с начала года мы провели 310 консультаций на дому."];
var utObject = document.getElementById("ut");
var m=0;
 
//
function change (m) 
{
    utObject.innerHTML = set[m];
    m=1-m;  // вернул как и было
}
//setInterval (change, 5000);
setInterval(function(){change(m)},5000);

//

по поводу IE - затрудняюсь сказать, почему так происходит. не сталкивался.


Часовой пояс GMT +3, время: 15:31.