przez Wydra707 » 14 maja 2003, o 21:07
Pewnie, że da radę, ale trzeba trochę przerobić ten skrypt. Oto on:
var sInfoTemp, iTimer;
function fPrzewin(sInfo){
window.clearInterval(iTimer);
sInfoTemp='';
for(var i=0;i<10;i++){
sInfoTemp+=' ';/*tu powinno być 10 spacji*/
};
sInfoTemp+=sInfo;
iTimer=window.setInterval('fPrzewin2()',100);
};
function fPrzewin2(){
sInfoTemp=sInfoTemp.substr(1)+sInfoTemp.substr(0,1);
window.status=sInfoTemp;
};
Będzie działał aż nie opuścisz strony albo nie wywołasz ponownie funkcji fPrzewin() z innym tekstem. Szybkość ustawiasz teraz w metodzie setInterval.
Być może pisząc o miganiu myślałeś o pewnych nieregularnościach w przesuwaniu tekstu. Tego nie zwalczysz, bo to skutek stosowanej na pasku czcionki proporcjonalnej. Skrypt działa w ten sposób, że wyświetla na pasku tekst, po czym przenosi pierwszą literę na koniec, wyświetla ponownie itd. Napisy na pasku statusu wyrównywane są do lewej, a więc długość przesunięcia zależy od tego, jaka litera zostaje "zdjęta" z początku łańcucha. Jeśli jest to spacja lub 'i', skok jest niewielki, jeśli 'm' - duży. Stąd nieregularne przesuwanie i efekt jakby "przyspieszenia" gdy tekst dochodzi do lewego brzegu okna. Nic na to nie poradzisz - pasek nie służy do animacji! Jeśli używasz IE, to może skorzystaj ze znacznika MARQUEE służącego właśnie do przewijania zawartości.
To Dyrcio:
Nie znam specyfiki innych przeglądarek, ale chyba nie użyłem tu instrukcji, których by nie znały? Bo znacznik SCRIPT podany był jedynie przykładowo (zawsze tak testuję skrypty u siebie). Rozumiem, że Artur zrobi sobie z tego tradycyjny <SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript1.2">.
Pozdrawiam
Paweł Rajewski