Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 31.03.2009, 10:31
yvarvara
 
Сообщений: n/a

Бегущая строка с меняющимся текстом
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>

Последний раз редактировалось Андрей Параничев, 31.03.2009 в 20:54. Причина: Пользуйтесь bb-тегами [js] и [html] для оформления листингов кода в теле сообщения
Ответить с цитированием
  #2 (permalink)  
Старый 31.03.2009, 10:34
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от yvarvara
я ужасно извиняюсь, но у меня нет никакого визуального редактора ни в Firefox, ни в IE
Действительно, у незарегистрированных какая-то ущербная форма ответа.
Ответить с цитированием
  #3 (permalink)  
Старый 31.03.2009, 11:25
Интересующийся
Отправить личное сообщение для yvarvara Посмотреть профиль Найти все сообщения от yvarvara
 
Регистрация: 31.03.2009
Сообщений: 14

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

<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]
Ответить с цитированием
  #4 (permalink)  
Старый 31.03.2009, 14:27
Профессор
Отправить личное сообщение для AzriMan Посмотреть профиль Найти все сообщения от AzriMan
 
Регистрация: 27.02.2009
Сообщений: 215

попробуйте так:
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;?
Ответить с цитированием
  #5 (permalink)  
Старый 31.03.2009, 16:45
Интересующийся
Отправить личное сообщение для yvarvara Посмотреть профиль Найти все сообщения от yvarvara
 
Регистрация: 31.03.2009
Сообщений: 14

Ответ
Чтобы менять m с 0 на 1 и обратно. Чтобы проверить, что что-то меняется.
Ответить с цитированием
  #6 (permalink)  
Старый 31.03.2009, 16:53
Профессор
Отправить личное сообщение для AzriMan Посмотреть профиль Найти все сообщения от AzriMan
 
Регистрация: 27.02.2009
Сообщений: 215

Аа.. значит изменение с 0 на 1 и обратно и было задумано. ок. просто в "массиве" три элемента, поэтому мне стало не понятно. ок. что насчет того варианта, который я написал?
Ответить с цитированием
  #7 (permalink)  
Старый 31.03.2009, 17:36
Интересующийся
Отправить личное сообщение для yvarvara Посмотреть профиль Найти все сообщения от yvarvara
 
Регистрация: 31.03.2009
Сообщений: 14

А кажется Вы еще ничего не написали... Или Вы имеете в виду другой мой вопрос, про innertext? Там все получилось. Просто теперь я пытаюсь с помощью innerHTML менять текст в бегущей строке, а мой файл не работает.
Ответить с цитированием
  #8 (permalink)  
Старый 31.03.2009, 17:38
Интересующийся
Отправить личное сообщение для yvarvara Посмотреть профиль Найти все сообщения от yvarvara
 
Регистрация: 31.03.2009
Сообщений: 14

А, я поняла! Я не заметила этот Ваш ответ! Извините
Ответить с цитированием
  #9 (permalink)  
Старый 31.03.2009, 20:06
Интересующийся
Отправить личное сообщение для yvarvara Посмотреть профиль Найти все сообщения от yvarvara
 
Регистрация: 31.03.2009
Сообщений: 14

Спасибо! Ваш файл работает. Но, к сожалению, есть некоторые проблемы. В Firefox все более-менее нормально, но в IE текст появляется кусками, не целыми фразами, и время, которое он находится на странице, почему-то разное, неодинаковое. Работает со странностями.
Все равно, большое Вам спасибо, что потратили на меня свое время!
Я подумаю о каком-нибудь другом варианте бегущей строки
Ответить с цитированием
  #10 (permalink)  
Старый 01.04.2009, 09:21
Профессор
Отправить личное сообщение для AzriMan Посмотреть профиль Найти все сообщения от AzriMan
 
Регистрация: 27.02.2009
Сообщений: 215

пожалуйста.

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 - затрудняюсь сказать, почему так происходит. не сталкивался.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск