Предлагаю следующий скрипт для строки состояния:
| Код | <script language="JavaScript"> <!-- hide //выбор текста для прокрутки var scrtxt = "Это JavaScript! " + "Это JavaScript! " + "Это JavaScript!"; var len = scrtxt.length;; var width = 100; var pos = -(width + 2);
function scroll() { //напечатать заданный текст справа и установить таймер //перейти на исходную позицию для следующего шага pos++;
//вычленить видимую часть текста var scroller = ""; if (pos == len) { pos = -(width + 2); } //если текст еще не дошел до левой границы, то мы должны //добавить перед ним несколько пробелов. В противном случае мы должны //вырезать начало текста (ту часть, что уже ушла за левую границу if (pos < 0) { for (var i = 1; i <= Math.abs(pos); i++) { scroller = scroller + " "; } scroller = scroller + scrtxt.substring(0, width - i + 1); } else { scroller = scroller + scrtxt.substring(pos, width + pos); } //разместить текст в строке состояния window.status = scroller; //вызвать эту функцию вновь через 150 миллисекунд setTimeout("scroll()", 150); } // --> </script>
|
Если бегущая строка нужна не в строке состояния, а где-нибудь в теле документа, можно использовать тег marquee, который, правда, поддерживается не всеми браузерами. Можно использовать и скрипт, приведенный выше. Но для этого нужно определить элемент, в котором будет "бежать" строка, например:
| Код | <p id="scrollline"></p>
|
И вместо строки window.status = scroller; в скрипте написать scrollline.innerText = scroller. Но JavaScript тоже полностью поддерживается не всеми браузерами... Так что я призываю вас юзать IE .
З.Ы. Для того, чтобы бегущая строка появлялась после загрузки страницы, не забудь событию onLoad тега body присвоить имя функции:
| Код | <body onLoad="scroll()">
| |